]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: Monitor: wait_for_paxos() before scrubbing
authorJoao Eduardo Luis <joao@suse.de>
Tue, 26 May 2015 14:18:01 +0000 (15:18 +0100)
committerJoao Eduardo Luis <joao@suse.de>
Wed, 27 May 2015 22:48:45 +0000 (23:48 +0100)
Signed-off-by: Joao Eduardo Luis <joao@suse.de>
src/mon/Monitor.cc

index 862d92b3c89645c95aaf3f3c0f23e10d41a21379..a5e623d04bbb83eb712303cd97f6a1272027e866 100644 (file)
@@ -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;