If paxos reproposes an old learned value, we have a C_Active waiter, and
also a commit in progress.
When we reach quorum, paxos goes active, and _active() creates a new
pending. A bit later, the _commit callback goes, and we already have that
pending value ready.
Signed-off-by: Sage Weil <sage@newdream.net>
if (mon->is_leader()) {
dout(7) << "_commit creating new pending" << dendl;
- assert(have_pending == false);
- create_pending();
- have_pending = true;
+ if (!have_pending) {
+ create_pending();
+ have_pending = true;
+ }
committed();
}