client: request next osdmap for blacklisted client

When client became blacklisted, it did't subscribe next osdmap. So when
it was removed from blacklist by expiration or commandline, it didn't
get updated osdmap which is the only way for the client to reset its
blacklisted flag.

Fixes: http://tracker.ceph.com/issues/36668

Signed-off-by: Zhi Zhang <zhangz.david@outlook.com>
This commit is contained in:
Zhi Zhang 2018-11-01 14:52:04 +08:00
parent 1b57df1d51
commit 1baf91e7ef

View File

@ -2512,6 +2512,12 @@ void Client::handle_osd_map(MOSDMap *m)
return o.is_blacklisted(myaddrs);});
}
// Always subscribe to next osdmap for blacklisted client
// until this client is not blacklisted.
if (blacklisted) {
objecter->maybe_request_map();
}
if (objecter->osdmap_full_flag()) {
_handle_full_flag(-1);
} else {