summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSage Weil <sage@inktank.com>2013-07-25 11:10:53 -0700
committerSage Weil <sage@inktank.com>2013-07-25 17:01:20 -0700
commit05b6c7e8645081f405c616735238ae89602d3cc6 (patch)
treead6721b5b9b73240aaf8d355665103b5d790334d
parent176aa3946631a8707400f7245b46dfe3e85cacf2 (diff)
downloadceph-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.cc2
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);