]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
client: request next osdmap for blacklisted client
authorZhi Zhang <willzzhang@tencent.com>
Thu, 1 Nov 2018 06:52:04 +0000 (14:52 +0800)
committerZhi Zhang <willzzhang@tencent.com>
Thu, 1 Nov 2018 06:52:04 +0000 (14:52 +0800)
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>
src/client/Client.cc

index 767d08fafa45138c3b88080ad0bf8739eb261348..898ea2ad317f5a5184273abbde5837d67833a506 100644 (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 {