void Monitor::recovered_leader(int id)
{
- if (paxos_recovered.count(id))
- return;
+ assert(paxos_recovered.count(id) == 0);
paxos_recovered.insert(id);
if (paxos_recovered.size() == paxos.size()) {
dout(10) << "all paxos instances recovered, going writeable" << dendl;
void Monitor::recovered_peon(int id)
{
- if (paxos_recovered.count(id))
- return;
+ assert(paxos_recovered.count(id) == 0);
paxos_recovered.insert(id);
if (paxos_recovered.size() == paxos.size()) {
dout(10) << "all paxos instances recovered/leased" << dendl;
}
state = STATE_ACTIVE;
- mon->recovered_peon(machine_id);
+
+ if (!mon->is_all_paxos_recovered())
+ mon->recovered_peon(machine_id);
dout(10) << "handle_lease on " << lease->last_committed
<< " now " << lease_expire << dendl;