From: Prashant D Date: Wed, 1 Apr 2026 19:14:56 +0000 (-0400) Subject: ceph_mon: Fix shutdown order to destroy Monitor before closing mon store X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=81bd13981a1e020578335ca61bba0db05848631b;p=ceph.git ceph_mon: Fix shutdown order to destroy Monitor before closing mon store Reorder monitor shutdown to ensure all SyncProvider iterators are destroyed before the underlying mon store is closed. This avoids iterator cleanup paths entering RocksDB internals after the DB has already been closed, which can result in mutex lock failures and process aborts. Fixes: https://tracker.ceph.com/issues/75834 Signed-off-by: Prashant D --- diff --git a/src/ceph_mon.cc b/src/ceph_mon.cc index 8c616049b863..de6682bea66e 100644 --- a/src/ceph_mon.cc +++ b/src/ceph_mon.cc @@ -903,14 +903,15 @@ int main(int argc, const char **argv) msgr->wait(); mgr_msgr->wait(); - store.close(); - unregister_async_signal_handler(SIGHUP, handle_mon_signal); unregister_async_signal_handler(SIGINT, handle_mon_signal); unregister_async_signal_handler(SIGTERM, handle_mon_signal); shutdown_async_signal_handler(); + // Destroy the Monitor (and its iterators) before closing the store. delete mon; + store.close(); + delete msgr; delete mgr_msgr;