summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSage Weil <sage@inktank.com>2013-05-01 10:57:35 -0700
committerSage Weil <sage@inktank.com>2013-05-01 10:57:58 -0700
commit88c030fc05dcc5227ec1b3e32e9169312d640ac1 (patch)
tree3b66554c657f3b2f7790347abf3d734562f01d71
parent3a6138b25ed38d7e55c85b997fb8533e97e63c68 (diff)
downloadceph-88c030fc05dcc5227ec1b3e32e9169312d640ac1.tar.gz
mon/Paxos: update first_committed when we trim
The Paxos::trim() -> ::trim_to() path trims old states but does not update first_committed. This misinforms later paxos rounds such that peers think they can participate and end up with COMMIT messages following the COLLECT/LAST exchange that are for future commits they can't do anything with and then crash out when they get the BEGIN: mon/Paxos.cc: 557: FAILED assert(begin->last_committed == last_committed) Fixes: #4879 Signed-off-by: Sage Weil <sage@inktank.com> Reviewed-by: Greg Farnum <greg@inktank.com>
-rw-r--r--src/mon/Paxos.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/mon/Paxos.cc b/src/mon/Paxos.cc
index d57562a0f63..71ef2ec3de0 100644
--- a/src/mon/Paxos.cc
+++ b/src/mon/Paxos.cc
@@ -990,6 +990,7 @@ void Paxos::trim_to(MonitorDBStore::Transaction *t, version_t first)
return;
trim_to(t, first_committed, first);
t->put(get_name(), "first_committed", first);
+ first_committed = first;
}
void Paxos::trim_to(version_t first)