]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
mon: paxos: introduce new reset_pending_committing_finishers for safety 27877/head
authorGreg Farnum <gfarnum@redhat.com>
Mon, 29 Apr 2019 22:39:59 +0000 (15:39 -0700)
committerGreg Farnum <gfarnum@redhat.com>
Tue, 30 Apr 2019 19:40:03 +0000 (12:40 -0700)
commitb17caec586ba2801593db61f91d66719d40b905e
tree8a7ec82470205bdf8dd5260b551190aeec737af1
parent8cd112815743264fb47c71c2cb96a255da80eade
mon: paxos: introduce new reset_pending_committing_finishers for safety

There are asserts about the state of the system and pending_finishers which can
be triggered by running arbitrary commands through again. They are correct
when not restarting, but when we do restart we need to take care to preserve
the same invariants as appropriate. Use this function to be careful about
the order of committing_finishers v pending_finishers and to make sure they're
both empty before any Contexts actually get called.

We also reorder a call to finish_contexts on the waiting_for_writeable list for
similar reasons.

Fixes: http://tracker.ceph.com/issues/39484
Signed-off-by: Greg Farnum <gfarnum@redhat.com>
src/mon/Paxos.cc
src/mon/Paxos.h