]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
mon/OSDMonitor: Ensure kvmon() is writeable before handling "osd new" cmd 46691/head
authorSridhar Seshasayee <sseshasa@redhat.com>
Fri, 27 May 2022 08:59:07 +0000 (14:29 +0530)
committerSridhar Seshasayee <sseshasa@redhat.com>
Wed, 15 Jun 2022 09:10:19 +0000 (14:40 +0530)
commit5c16e50d109ac8b546420f96c2c0aa752ff31ee7
tree4976f53770a82fce98507e3001b53d965828d091
parentc673a842165dd7b9cff75b35e47e67cfd5ce8879
mon/OSDMonitor: Ensure kvmon() is writeable before handling "osd new" 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>
(cherry picked from commit 9a0d42c9fbcf64711a791edcf9cafdba57d901d7)
src/mon/OSDMonitor.cc