From dc0da359cbbf6690a0c19ebad80adfe14ec20068 Mon Sep 17 00:00:00 2001 From: Zhi Zhang Date: Thu, 1 Nov 2018 14:52:04 +0800 Subject: [PATCH] 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 (cherry picked from commit 1baf91e7ef0419270d6ea5d7d68adb94a2403114) --- src/client/Client.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/client/Client.cc b/src/client/Client.cc index 166b5f18b10ef..d133bcf5013d8 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -2500,6 +2500,12 @@ void Client::handle_osd_map(MOSDMap *m) return o.is_blacklisted(myaddr);}); } + // 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 {