Otherwise we may trigger the timeout while waiting for the work to be
committed to the store -- and it would only take the write to take a bit
longer than 10 seconds (default accept timeout).
We do wait for the work to be properly committed to the store before
extending the lease though.
Fixes: #10220
Signed-off-by: Joao Eduardo Luis <joao@redhat.com>
(cherry picked from commit
18534615f184ba56b441fd1d4242eb06debdfe13)
state = STATE_WRITING;
else
assert(0);
+
+ if (mon->get_quorum().size() > 1) {
+ // cancel timeout event
+ mon->timer.cancel_event(accept_timeout_event);
+ accept_timeout_event = 0;
+ }
}
void Paxos::commit_finish()
if (do_refresh()) {
commit_proposal();
-
- finish_contexts(g_ceph_context, waiting_for_commit);
-
if (mon->get_quorum().size() > 1) {
- // cancel timeout event
- mon->timer.cancel_event(accept_timeout_event);
- accept_timeout_event = 0;
extend_lease();
}
+ finish_contexts(g_ceph_context, waiting_for_commit);
+
assert(g_conf->paxos_kill_at != 10);
finish_round();