]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
mon: paxos: introduce new reset_pending_committing_finishers for safety 28528/head
authorGreg Farnum <gfarnum@redhat.com>
Mon, 29 Apr 2019 22:39:59 +0000 (15:39 -0700)
committerPrashant D <pdhange@redhat.com>
Thu, 13 Jun 2019 02:19:51 +0000 (22:19 -0400)
commit4ad87496960e3bee2beabca9278e582c8bea9e61
treec4a9ac30cc9d293996f09204385d656b85956fed
parent95a20e41a9da181c960064b8905bd323a563cf0a
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