From: Samuel Just Date: Thu, 8 Aug 2024 03:05:09 +0000 (-0700) Subject: crimson/.../alien_store: clear coll_map in umount rather than stop X-Git-Tag: v20.0.0~1288^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F59098%2Fhead;p=ceph.git crimson/.../alien_store: clear coll_map in umount rather than stop As of a926a4a54ced, BlueStore::umount expects outstanding CollectionRef's to already have been released. Previously, 8389471b3 updated alien_store.cc to release coll_map in stop() in in the alien tp. Fixes: https://tracker.ceph.com/issues/67415 Signed-off-by: Samuel Just --- diff --git a/src/crimson/os/alienstore/alien_store.cc b/src/crimson/os/alienstore/alien_store.cc index 03359ed80244e..21bb250e13ff6 100644 --- a/src/crimson/os/alienstore/alien_store.cc +++ b/src/crimson/os/alienstore/alien_store.cc @@ -128,13 +128,6 @@ seastar::future<> AlienStore::stop() return seastar::now(); } return tp->submit([this] { - { - std::lock_guard l(coll_map_lock); - for (auto [cid, ch]: coll_map) { - static_cast(ch.get())->collection.reset(); - } - coll_map.clear(); - } store.reset(); cct.reset(); g_ceph_context = nullptr; @@ -182,6 +175,13 @@ seastar::future<> AlienStore::umount() } return op_gate.close().then([this] { return tp->submit([this] { + { + std::lock_guard l(coll_map_lock); + for (auto [cid, ch]: coll_map) { + static_cast(ch.get())->collection.reset(); + } + coll_map.clear(); + } return store->umount(); }); }).then([] (int r) {