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-08 22:40:53 -0700
commit0aacd10e2557c55021b5be72ddf39b9cea916be4 (patch)
tree97bc69723186008cb9878037354dc4193bb4550e
parentb2515b9e0b1e5e709716308a515026b3e6ff23b5 (diff)
downloadceph-0aacd10e2557c55021b5be72ddf39b9cea916be4.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>
-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 e8dd019af3a..48b6a3cabf6 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) {