diff --git a/src/mon/MonClient.cc b/src/mon/MonClient.cc index 5f31182a761..1ad9e50647b 100644 --- a/src/mon/MonClient.cc +++ b/src/mon/MonClient.cc @@ -374,8 +374,10 @@ void MonClient::handle_monmap(MMonMap *m) void MonClient::handle_config(MConfig *m) { ldout(cct,10) << __func__ << " " << *m << dendl; - cct->_conf->set_mon_vals(cct, m->config, config_cb); - m->put(); + finisher.queue(new FunctionContext([this, m](int r) { + cct->_conf->set_mon_vals(cct, m->config, config_cb); + m->put(); + })); got_config = true; map_cond.Signal(); }