From: Sage Weil Date: Mon, 22 Jul 2013 21:13:23 +0000 (-0700) Subject: mon/Paxos: only share uncommitted value if it is next X-Git-Tag: v0.67-rc2~19^2~1^2~4 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=b26b7f6e5e02ac6beb66e3e34e177e6448cf91cf;p=ceph.git mon/Paxos: only share uncommitted value if it is next 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 --- diff --git a/src/mon/Paxos.cc b/src/mon/Paxos.cc index ee2ba3b6fdb8..7785d37d4f03 100644 --- a/src/mon/Paxos.cc +++ b/src/mon/Paxos.cc @@ -198,7 +198,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 "