]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
client: request next osdmap for blacklisted client 24986/head
authorZhi Zhang <willzzhang@tencent.com>
Thu, 1 Nov 2018 06:52:04 +0000 (14:52 +0800)
committerJos Collin <jcollin@redhat.com>
Thu, 8 Nov 2018 04:31:17 +0000 (10:01 +0530)
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>
(cherry picked from commit 1baf91e7ef0419270d6ea5d7d68adb94a2403114)

src/client/Client.cc

index fc99ad53bef945acddac43cc971a78a4e17319bf..03ecb97054c95c7752da95c37778456ec0fef1f9 100644 (file)
@@ -2475,6 +2475,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 {