From: Sage Weil Date: Wed, 1 May 2013 17:57:35 +0000 (-0700) Subject: mon/Paxos: update first_committed when we trim X-Git-Tag: v0.61~25 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=88c030fc05dcc5227ec1b3e32e9169312d640ac1;p=ceph.git 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 Reviewed-by: Greg Farnum --- diff --git a/src/mon/Paxos.cc b/src/mon/Paxos.cc index d57562a0f630..71ef2ec3de03 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)