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
mon/OSDMonitor: Ensure kvmon() is writeable before handling "osd new" cmd #46428
Conversation
… cmd Before proceeding to handle "osd new" mon command as part of OSDMonitor::prepare_command_impl(), a check is made to verify if the authmon is writeable. Later on, prepare_command_osd_new() invokes KVMonitor::do_osd_new() to create pending dmcrypt keys and calls propose_pending(). The propose could fail (with an assertion failure) if there was a prior mon command that resulted in the kvmon invoking propose_pending(). In order to avoid such a situation, introduce a check to verify that kvmon is also writeable in OSDMonitor::prepare_command_impl(). If it is not writeable, the op is pushed into the wait_for_active context queue to be retried later. Fixes: https://tracker.ceph.com/issues/55773 Signed-off-by: Sridhar Seshasayee <sseshasa@redhat.com>
jenkins test api |
Tests Performed: After the review, this needs to go through teuthology. |
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.
LGTM
Teuthology Test Result: http://pulpito.front.sepia.ceph.com/yuriw-2022-06-13_16:36:31-rados-wip-yuri7-testing-2022-06-13-0706-distro-default-smithi/ |
Failures, unrelated: Details: |
Before proceeding to handle "osd new" mon command as part of
OSDMonitor::prepare_command_impl(), a check is made to verify if the
authmon is writeable. Later on, prepare_command_osd_new() invokes
KVMonitor::do_osd_new() to create pending dmcrypt keys and calls
propose_pending(). The propose could fail (with an assertion failure)
if there was a prior mon command that resulted in the kvmon invoking
propose_pending().
In order to avoid such a situation, introduce a check to verify that
kvmon is also writeable in OSDMonitor::prepare_command_impl(). If it
is not writeable, the op is pushed into the wait_for_active context
queue to be retried later.
Fixes: https://tracker.ceph.com/issues/55773
Signed-off-by: Sridhar Seshasayee sseshasa@redhat.com
Contribution Guidelines
To sign and title your commits, please refer to Submitting Patches to Ceph.
If you are submitting a fix for a stable branch (e.g. "pacific"), please refer to Submitting Patches to Ceph - Backports for the proper workflow.
Checklist
Show available Jenkins commands
jenkins retest this please
jenkins test classic perf
jenkins test crimson perf
jenkins test signed
jenkins test make check
jenkins test make check arm64
jenkins test submodules
jenkins test dashboard
jenkins test dashboard cephadm
jenkins test api
jenkins test docs
jenkins render docs
jenkins test ceph-volume all
jenkins test ceph-volume tox
jenkins test windows