summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Just <sam.just@inktank.com>2013-08-08 15:12:46 -0700
committerSage Weil <sage@inktank.com>2013-08-18 21:07:59 -0700
commit21a6e2479133a3debb9ab9057ff9fae70c9eede9 (patch)
treeb64ca0e86cdf80a9a76b25d6ac3b45dfb8ae8f0c
parent64bef4ae4bab28b0b82a1481381b0c68a22fe1a4 (diff)
downloadceph-21a6e2479133a3debb9ab9057ff9fae70c9eede9.tar.gz
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 <sam.just@inktank.com> Reviewed-by: Sage Weil <sage@inktank.com> (cherry picked from commit 0aacd10e2557c55021b5be72ddf39b9cea916be4)
-rw-r--r--src/librados/RadosClient.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/librados/RadosClient.cc b/src/librados/RadosClient.cc
index 5356fb65e68..b18447c67b0 100644
--- a/src/librados/RadosClient.cc
+++ b/src/librados/RadosClient.cc
@@ -227,7 +227,6 @@ void librados::RadosClient::shutdown()
if (state == CONNECTED) {
finisher.stop();
}
- monclient.shutdown();
bool need_objecter = false;
if (objecter && state == CONNECTED) {
need_objecter = true;
@@ -236,6 +235,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) {