mirror of
https://github.com/ceph/ceph
synced 2025-02-21 01:47:25 +00:00
mon: send no_reply() to peon to drop ignored mdsbeacon
so the peon can remove the ignored mdsbeacon request from the routed_requets at seeing this reply, and hence no longer resend the request. Fixes: #11590 Signed-off-by: Kefu Chai <kchai@redhat.com>
This commit is contained in:
parent
16e8e2cc82
commit
72a37b3a8e
@ -291,7 +291,8 @@ bool MDSMonitor::preprocess_beacon(MMDSBeacon *m)
|
||||
if (state != MDSMap::STATE_BOOT) {
|
||||
dout(7) << "mds_beacon " << *m << " is not in mdsmap" << dendl;
|
||||
mon->send_reply(m, new MMDSMap(mon->monmap->fsid, &mdsmap));
|
||||
goto out;
|
||||
m->put();
|
||||
return true;
|
||||
} else {
|
||||
return false; // not booted yet.
|
||||
}
|
||||
@ -358,9 +359,12 @@ bool MDSMonitor::preprocess_beacon(MMDSBeacon *m)
|
||||
mon->send_reply(m,
|
||||
new MMDSBeacon(mon->monmap->fsid, m->get_global_id(), m->get_name(),
|
||||
mdsmap.get_epoch(), state, seq));
|
||||
|
||||
// done
|
||||
m->put();
|
||||
return true;
|
||||
|
||||
out:
|
||||
// I won't reply this beacon, drop it.
|
||||
mon->no_reply(m);
|
||||
m->put();
|
||||
return true;
|
||||
}
|
||||
|
@ -58,10 +58,12 @@ class MDSMonitor : public PaxosService {
|
||||
void finish(int r) {
|
||||
if (r >= 0)
|
||||
mm->_updated(m); // success
|
||||
else if (r == -ECANCELED)
|
||||
else if (r == -ECANCELED) {
|
||||
mm->mon->no_reply(m);
|
||||
m->put();
|
||||
else
|
||||
} else {
|
||||
mm->dispatch((PaxosServiceMessage*)m); // try again
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user