]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: elector needs to reset leader_acked on every election start
authorGreg Farnum <gregory.farnum@dreamhost.com>
Thu, 5 Jan 2012 23:29:32 +0000 (15:29 -0800)
committerGreg Farnum <gregory.farnum@dreamhost.com>
Thu, 5 Jan 2012 23:42:46 +0000 (15:42 -0800)
Otherwise you never reset the leader_acked after a failed
election attempt, so if mon 0 is available on the first round
but then fails, you never make progress!

Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
src/mon/Elector.cc

index dff8020f314ff303b248d94b5ce4313800474a7c..1e2abee8ad5023be0b790fb029ebd308b3163cc5 100644 (file)
@@ -56,7 +56,6 @@ void Elector::bump_epoch(epoch_t e)
   // clear up some state
   electing_me = false;
   acked_me.clear();
-  leader_acked = -1;
 }
 
 
@@ -74,6 +73,7 @@ void Elector::start()
   start_stamp = ceph_clock_now(g_ceph_context);
   electing_me = true;
   acked_me.insert(mon->rank);
+  leader_acked = -1;
 
   // bcast to everyone else
   for (unsigned i=0; i<mon->monmap->size(); ++i) {