diff options
author | Samuel Just <sam.just@inktank.com> | 2013-08-08 15:12:46 -0700 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2013-08-18 21:07:59 -0700 |
commit | 21a6e2479133a3debb9ab9057ff9fae70c9eede9 (patch) | |
tree | b64ca0e86cdf80a9a76b25d6ac3b45dfb8ae8f0c | |
parent | 64bef4ae4bab28b0b82a1481381b0c68a22fe1a4 (diff) | |
download | ceph-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.cc | 2 |
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) { |