Skip to content

Commit da013ee

Browse files
authored
Merge pull request ceph#58081 from sajibreadd/wip-65861
notifications: report an error when persistent queue deletion failed Reviewed-by: Yuval Lifshitz <[email protected]>
2 parents 12c4973 + 2b4a3bb commit da013ee

File tree

1 file changed

+19
-18
lines changed

1 file changed

+19
-18
lines changed

src/rgw/rgw_pubsub.cc

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1098,21 +1098,23 @@ int RGWPubSub::remove_topic_v2(const DoutPrefixProvider* dpp,
10981098
<< dendl;
10991099
return 0;
11001100
}
1101-
ret = driver->remove_topic_v2(name, tenant, objv_tracker, y, dpp);
1102-
if (ret < 0) {
1103-
ldpp_dout(dpp, 1) << "ERROR: failed to remove topic info: ret=" << ret
1104-
<< dendl;
1105-
return ret;
1106-
}
11071101

11081102
const rgw_pubsub_dest& dest = topic.dest;
11091103
if (!dest.push_endpoint.empty() && dest.persistent &&
11101104
!dest.persistent_queue.empty()) {
11111105
ret = driver->remove_persistent_topic(dpp, y, dest.persistent_queue);
11121106
if (ret < 0 && ret != -ENOENT) {
1113-
ldpp_dout(dpp, 1) << "WARNING: failed to remove queue for "
1107+
ldpp_dout(dpp, 1) << "ERROR: failed to remove queue for "
11141108
"persistent topic: " << cpp_strerror(ret) << dendl;
1115-
} // not fatal
1109+
return ret;
1110+
}
1111+
}
1112+
1113+
ret = driver->remove_topic_v2(name, tenant, objv_tracker, y, dpp);
1114+
if (ret < 0) {
1115+
ldpp_dout(dpp, 1) << "ERROR: failed to remove topic info: ret=" << ret
1116+
<< dendl;
1117+
return ret;
11161118
}
11171119
return 0;
11181120
}
@@ -1144,22 +1146,21 @@ int RGWPubSub::remove_topic(const DoutPrefixProvider *dpp, const std::string& na
11441146
if (t == topics.topics.end()) {
11451147
return -ENOENT;
11461148
}
1147-
const rgw_pubsub_dest dest = std::move(t->second.dest);
1149+
if (!t->second.dest.push_endpoint.empty() && t->second.dest.persistent &&
1150+
!t->second.dest.persistent_queue.empty()) {
1151+
ret = driver->remove_persistent_topic(dpp, y, t->second.dest.persistent_queue);
1152+
if (ret < 0 && ret != -ENOENT) {
1153+
ldpp_dout(dpp, 1) << "ERROR: failed to remove queue for "
1154+
"persistent topic: " << cpp_strerror(ret) << dendl;
1155+
return ret;
1156+
}
1157+
}
11481158
topics.topics.erase(t);
11491159

11501160
ret = write_topics_v1(dpp, topics, &objv_tracker, y);
11511161
if (ret < 0) {
11521162
ldpp_dout(dpp, 1) << "ERROR: failed to remove topics info: ret=" << ret << dendl;
11531163
return ret;
11541164
}
1155-
1156-
if (!dest.push_endpoint.empty() && dest.persistent &&
1157-
!dest.persistent_queue.empty()) {
1158-
ret = driver->remove_persistent_topic(dpp, y, dest.persistent_queue);
1159-
if (ret < 0 && ret != -ENOENT) {
1160-
ldpp_dout(dpp, 1) << "WARNING: failed to remove queue for "
1161-
"persistent topic: " << cpp_strerror(ret) << dendl;
1162-
} // not fatal
1163-
}
11641165
return 0;
11651166
}

0 commit comments

Comments
 (0)