unlock osd_lock when serving "debug kick_recovery_wq" command
we need to unlock osd_lock temporarily when updating the osd settings,
otherwise we will run into assert failure. because
OSD::handle_conf_change() acquires the osd_lock which is not a recursive
lock.
Fixes: http://tracker.ceph.com/issues/37762
Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit
8e94b081506fa9fbdbea09113f1549772bb6ec04)
Conflicts:
src/osd/OSD.cc
cmd_getval(cct, cmdmap, "delay", delay);
ostringstream oss;
oss << delay;
+ unlock_guard unlock{osd_lock};
r = cct->_conf->set_val("osd_recovery_delay_start", oss.str().c_str());
if (r != 0) {
ss << "kick_recovery_wq: error setting "