]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/Paxos: only share uncommitted value if it is next
authorSage Weil <sage@inktank.com>
Mon, 22 Jul 2013 21:13:23 +0000 (14:13 -0700)
committerSage Weil <sage@inktank.com>
Wed, 24 Jul 2013 16:01:20 +0000 (09:01 -0700)
We may have an uncommitted value from our perspective (it is our lc + 1)
when the collector has a much larger lc (because we have been out for
the last few rounds).  Only share an uncommitted value if it is in fact
the next value.

Signed-off-by: Sage Weil <sage@inktank.com>
(cherry picked from commit b26b7f6e5e02ac6beb66e3e34e177e6448cf91cf)

src/mon/Paxos.cc

index 01e06209872102dc6b0cb9b0700a223466488ff4..b52986cf401c64b32f660a1944af445b0494a801 100644 (file)
@@ -205,7 +205,8 @@ void Paxos::handle_collect(MMonPaxos *collect)
   // do we have an accepted but uncommitted value?
   //  (it'll be at last_committed+1)
   bufferlist bl;
-  if (get_store()->exists(get_name(), last_committed+1)) {
+  if (collect->last_committed == last_committed &&
+      get_store()->exists(get_name(), last_committed+1)) {
     get_store()->get(get_name(), last_committed+1, bl);
     assert(bl.length() > 0);
     dout(10) << " sharing our accepted but uncommitted value for "