diff --git a/configure.ac b/configure.ac index 1bea9a50a5f..425bd6c9e67 100644 --- a/configure.ac +++ b/configure.ac @@ -8,7 +8,7 @@ AC_PREREQ(2.59) # VERSION define is not used by the code. It gets a version string # from 'git describe'; see src/ceph_ver.[ch] -AC_INIT([ceph], [0.58], [ceph-devel@vger.kernel.org]) +AC_INIT([ceph], [0.59], [ceph-devel@vger.kernel.org]) # Create release string. Used with VERSION for RPMs. RPM_RELEASE=0 diff --git a/debian/changelog b/debian/changelog index cdf32b1ff12..e9bbd30cd13 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +ceph (0.59-1) precise; urgency=low + + * New upstream release + + -- Gary Lowell Tue, 19 Mar 2013 22:26:37 -0700 + ceph (0.58-1) precise; urgency=low * New upstream release diff --git a/src/mon/Paxos.cc b/src/mon/Paxos.cc index 2c150cb149e..bf3eb9253e8 100644 --- a/src/mon/Paxos.cc +++ b/src/mon/Paxos.cc @@ -1124,6 +1124,7 @@ void Paxos::restart() if (!proposals.empty()) proposals.clear(); + state = STATE_RECOVERING; going_to_bootstrap = false; finish_contexts(g_ceph_context, waiting_for_commit, -EAGAIN); diff --git a/src/mon/PaxosService.h b/src/mon/PaxosService.h index 30a7b6dfe51..cc403574df8 100644 --- a/src/mon/PaxosService.h +++ b/src/mon/PaxosService.h @@ -105,11 +105,12 @@ protected: public: C_RetryMessage(PaxosService *s, PaxosServiceMessage *m_) : svc(s), m(m_) {} void finish(int r) { - if (r == -ECANCELED) { + if (r == -EAGAIN || r >= 0) + svc->dispatch(m); + else if (r == -ECANCELED) m->put(); - return; - } - svc->dispatch(m); + else + assert(0 == "bad C_RetryMessage return value"); } }; @@ -140,10 +141,13 @@ protected: public: C_Propose(PaxosService *p) : ps(p) { } void finish(int r) { - if (r == -ECANCELED) - return; ps->proposal_timer = 0; - ps->propose_pending(); + if (r >= 0) + ps->propose_pending(); + else if (r == -ECANCELED || r == -EAGAIN) + return; + else + assert(0 == "bad return value for C_Propose"); } }; @@ -163,7 +167,12 @@ protected: C_Committed(PaxosService *p) : ps(p) { } void finish(int r) { ps->proposing.set(0); - ps->_active(); + if (r >= 0) + ps->_active(); + else if (r == -ECANCELED || r == -EAGAIN) + return; + else + assert(0 == "bad return value for C_Committed"); } }; /**