diff options
author | Samuel Just <sam.just@inktank.com> | 2013-08-08 15:12:46 -0700 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2013-08-08 22:40:53 -0700 |
commit | 0aacd10e2557c55021b5be72ddf39b9cea916be4 (patch) | |
tree | 97bc69723186008cb9878037354dc4193bb4550e | |
parent | b2515b9e0b1e5e709716308a515026b3e6ff23b5 (diff) | |
download | ceph-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.cc | 2 |
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) { |