]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: there is an assertion when calling Beacon::shutdown() 27063/head
authorhuanwen ren <ren.huanwen@zte.com.cn>
Wed, 20 Mar 2019 15:46:08 +0000 (23:46 +0800)
committerhuanwen ren <ren.huanwen@zte.com.cn>
Wed, 20 Mar 2019 16:04:17 +0000 (00:04 +0800)
If you run MDSDaemon::init(), an exception occurs that causes MDSDaemon::suicide()--->Beacon::shutdown()--->sender.join();
this problem occurs because sender is just Default-constructed is in Beacon.h(std::thread sender;), there is no call
to Beacon::init() to construct the sender, so the sender has no "joinable"

Fixes: http://tracker.ceph.com/issues/38822
Signed-off-by: huanwen ren <ren.huanwen@zte.com.cn>
src/mds/Beacon.cc

index cda44823fb9c38264f0b762ee1307a91be57c61e..d6f0eee63569c387253e9807f7c8eab5be2c62dd 100644 (file)
@@ -56,7 +56,8 @@ void Beacon::shutdown()
   if (!finished) {
     finished = true;
     lock.unlock();
-    sender.join();
+    if (sender.joinable())
+      sender.join();
   }
 }