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>
if (state == CONNECTED) {
finisher.stop();
}
- monclient.shutdown();
bool need_objecter = false;
if (objecter && state == CONNECTED) {
need_objecter = true;
state = DISCONNECTED;
timer.shutdown(); // will drop+retake lock
lock.Unlock();
+ monclient.shutdown();
if (need_objecter)
objecter->shutdown_unlocked();
if (messenger) {