]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
mon: paxos: introduce new reset_pending_committing_finishers for safety 28540/head
authorGreg Farnum <gfarnum@redhat.com>
Mon, 29 Apr 2019 22:39:59 +0000 (15:39 -0700)
committerPrashant D <pdhange@redhat.com>
Fri, 14 Jun 2019 01:08:06 +0000 (21:08 -0400)
commit462b9163da763d81aecb51fb82827d1c51f58cd2
treee26cd9c11ea12a7efaec406ad4456cb9ee30c06e
parent9537302815ff3671565a82bcb0123af125ba3165
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>
(cherry picked from commit b17caec586ba2801593db61f91d66719d40b905e)
src/mon/Paxos.cc
src/mon/Paxos.h