mirror of
https://github.com/ceph/ceph
synced 2025-02-21 09:57:26 +00:00
mds: wait for rejoin_gather_finish to complete before finishing
To do that we add ourselves to the rejoin_ack_gather. Otherwise we end up in up:active before we've even finished our parallel_fetch or finished up our caps!
This commit is contained in:
parent
f8501abc72
commit
660ca27162
@ -2902,6 +2902,7 @@ void MDCache::rejoin_send_rejoins()
|
||||
rejoin_ack_gather.insert(p->first);
|
||||
mds->send_message_mds(p->second, p->first);
|
||||
}
|
||||
rejoin_ack_gather.insert(mds->whoami); // we need to complete rejoin_gather_finish, too
|
||||
|
||||
// nothing?
|
||||
if (mds->is_rejoin() && rejoins.empty()) {
|
||||
@ -3790,8 +3791,11 @@ void MDCache::rejoin_gather_finish()
|
||||
process_imported_caps();
|
||||
process_reconnected_caps();
|
||||
identify_files_to_recover();
|
||||
|
||||
rejoin_send_acks();
|
||||
|
||||
// signal completion of fetches, rejoin_gather_finish, etc.
|
||||
assert(rejoin_ack_gather.count(mds->whoami));
|
||||
rejoin_ack_gather.erase(mds->whoami);
|
||||
|
||||
// did we already get our acks too?
|
||||
// this happens when the rejoin_gather has to wait on a MISSING/FULL exchange.
|
||||
|
Loading…
Reference in New Issue
Block a user