From: Adam C. Emerson Date: Mon, 9 Mar 2026 22:03:42 +0000 (-0400) Subject: common/async: Fix removal from service list X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=b6a54e67cbcf11b23dcd5a5cd59795aeb7ff948e;p=ceph.git common/async: Fix removal from service list Thanks to Seena Fallah for this fix, part of a larger commit. Fixes: https://tracker.ceph.com/issues/75164 Co-authored-by: Seena Fallah Signed-off-by: Adam C. Emerson --- diff --git a/src/common/async/service.h b/src/common/async/service.h index 2f8ff8f6ba19..214cb0b29ba3 100644 --- a/src/common/async/service.h +++ b/src/common/async/service.h @@ -65,11 +65,10 @@ class service : public boost::asio::execution_context::service { /// Unregister an object void remove(IoObject& entry) { auto lock = std::scoped_lock{mutex}; - if (entries.empty()) { - // already shut down - } else { + if (entry.is_linked()) { entries.erase(entries.iterator_to(entry)); } + // else: already removed by shutdown() or a previous remove() } };