New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ceph-objectstore-tool: don't destroy SnapMapper until the txn is completed #20593
Conversation
otherwise ceph-mgr will refuse to start if the required python binding, a.k.a mgr_module is not available in default sys.path. Signed-off-by: Kefu Chai <kchai@redhat.com>
this PR contains #20589 |
…leted ch->flush() only ensure that the op is dequeued from osr/collection's queue. but the ops could be still in the flight and they could still be holding a *weak* reference of SnapMapper. we should make sure that the mapper is still available when they reference it, Fixes: http://tracker.ceph.com/issues/23121 Signed-off-by: Kefu Chai <kchai@redhat.com>
it never fails. Signed-off-by: Kefu Chai <kchai@redhat.com>
it never fails. Signed-off-by: Kefu Chai <kchai@redhat.com>
changelog
|
@@ -415,6 +413,22 @@ int mark_pg_for_removal(ObjectStore *fs, spg_t pgid, ObjectStore::Transaction *t | |||
#pragma GCC diagnostic pop | |||
#pragma GCC diagnostic warning "-Wpragmas" | |||
|
|||
template<typename Func> | |||
void wait_until_done(ObjectStore::Transaction* txn, Func&& func) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is this mechanism needed now?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
see the commit message of 42f310f
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
run-standalone.sh started hanging so applied your change it fixed it.
and some cleanups