]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: there is an assertion when calling Beacon::shutdown() 29223/head
authorhuanwen ren <ren.huanwen@zte.com.cn>
Wed, 20 Mar 2019 15:46:08 +0000 (23:46 +0800)
committerNathan Cutler <ncutler@suse.com>
Tue, 23 Jul 2019 15:35:48 +0000 (17:35 +0200)
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>
(cherry picked from commit 526bbda6f68873a500c78685a7c39a129d8531e5)

src/mds/Beacon.cc

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