diff options
author | Sage Weil <sage@inktank.com> | 2013-07-25 11:10:53 -0700 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2013-07-25 17:01:20 -0700 |
commit | 05b6c7e8645081f405c616735238ae89602d3cc6 (patch) | |
tree | ad6721b5b9b73240aaf8d355665103b5d790334d | |
parent | 176aa3946631a8707400f7245b46dfe3e85cacf2 (diff) | |
download | ceph-05b6c7e8645081f405c616735238ae89602d3cc6.tar.gz |
mon/Paxos: share uncommitted value when leader is/was behind
If the leader has and older lc than we do, and we are sharing states to
bring them up to date, we still want to also share our uncommitted value.
This particular case was broken by b26b7f6e, which was only contemplating
the case where the leader was ahead of us or at the same point as us, but
not the case where the leader was behind. Note that the call to
share_state() a few lines up will bring them fully up to date, so
after they receive and store_state() for this message they will be at the
same lc as we are.
Fixes: #5750
Backport: cuttlefish
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
-rw-r--r-- | src/mon/Paxos.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/mon/Paxos.cc b/src/mon/Paxos.cc index 508669deef5..a543abed7ed 100644 --- a/src/mon/Paxos.cc +++ b/src/mon/Paxos.cc @@ -210,7 +210,7 @@ void Paxos::handle_collect(MMonPaxos *collect) // do we have an accepted but uncommitted value? // (it'll be at last_committed+1) bufferlist bl; - if (collect->last_committed == last_committed && + 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); |