From: Zhi Zhang Date: Mon, 27 Jun 2016 05:00:26 +0000 (+0800) Subject: mds: fix shutting down mds timed-out due to deadlock X-Git-Tag: v10.2.3~34^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=1d3a816814c6cb87f645f205362de800cc84d484;p=ceph.git mds: fix shutting down mds timed-out due to deadlock Signed-off-by: Zhi Zhang (cherry picked from commit ca069149654ecd10778cd5327bf59b9643e23967) --- diff --git a/src/mds/MDSRank.cc b/src/mds/MDSRank.cc index 68ea33eb0b3..9c5def15a94 100644 --- a/src/mds/MDSRank.cc +++ b/src/mds/MDSRank.cc @@ -237,7 +237,11 @@ void MDSRankDispatcher::shutdown() progress_thread.shutdown(); // shut down messenger + // release mds_lock first because messenger thread might call + // MDSDaemon::ms_handle_reset which will try to hold mds_lock + mds_lock.Unlock(); messenger->shutdown(); + mds_lock.Lock(); // Workaround unclean shutdown: HeartbeatMap will assert if // worker is not removed (as we do in ~MDS), but ~MDS is not