From: Joao Eduardo Luis Date: Tue, 26 May 2015 14:18:01 +0000 (+0100) Subject: mon: Monitor: wait_for_paxos() before scrubbing X-Git-Tag: v9.0.3~18^2~4 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=4b6d0819ce057b38a022e40c5c586f0e041b96b1;p=ceph.git mon: Monitor: wait_for_paxos() before scrubbing Signed-off-by: Joao Eduardo Luis --- diff --git a/src/mon/Monitor.cc b/src/mon/Monitor.cc index 862d92b3c896..a5e623d04bbb 100644 --- a/src/mon/Monitor.cc +++ b/src/mon/Monitor.cc @@ -4210,7 +4210,6 @@ int Monitor::scrub_start() } scrub_result.clear(); - scrub_version = paxos->get_version(); scrub_state.reset(new ScrubState); scrub(); @@ -4222,6 +4221,9 @@ int Monitor::scrub() assert(is_leader()); assert(scrub_state); + wait_for_paxos_write(); + scrub_version = paxos->get_version(); + // scrub all keys if we're the only monitor in the quorum int32_t num_keys = (quorum.size() == 1 ? -1 : cct->_conf->mon_scrub_max_keys); @@ -4259,6 +4261,9 @@ void Monitor::handle_scrub(MMonScrub *m) { if (!is_peon()) break; + + wait_for_paxos_write(); + if (m->version != paxos->get_version()) break;