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: v11.0.1~925^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ca069149654ecd10778cd5327bf59b9643e23967;p=ceph-ci.git mds: fix shutting down mds timed-out due to deadlock Signed-off-by: Zhi Zhang --- diff --git a/src/mds/MDSRank.cc b/src/mds/MDSRank.cc index 16a93485b2b..41b93ad2287 100644 --- a/src/mds/MDSRank.cc +++ b/src/mds/MDSRank.cc @@ -238,7 +238,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