From: Samuel Just Date: Thu, 8 Aug 2013 22:12:46 +0000 (-0700) Subject: RadosClient: shutdown monclient after dropping lock X-Git-Tag: v0.67~10 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=0aacd10e2557c55021b5be72ddf39b9cea916be4;p=ceph.git RadosClient: shutdown monclient after dropping lock Otherwise, the monclient shutdown may deadlock waiting on a context trying to take the RadosClient lock. Fixes: #5897 Signed-off-by: Samuel Just Reviewed-by: Sage Weil --- diff --git a/src/librados/RadosClient.cc b/src/librados/RadosClient.cc index e8dd019af3a2..48b6a3cabf60 100644 --- a/src/librados/RadosClient.cc +++ b/src/librados/RadosClient.cc @@ -229,7 +229,6 @@ void librados::RadosClient::shutdown() if (state == CONNECTED) { finisher.stop(); } - monclient.shutdown(); bool need_objecter = false; if (objecter && state == CONNECTED) { need_objecter = true; @@ -238,6 +237,7 @@ void librados::RadosClient::shutdown() state = DISCONNECTED; timer.shutdown(); // will drop+retake lock lock.Unlock(); + monclient.shutdown(); if (need_objecter) objecter->shutdown_unlocked(); if (messenger) {