From: Tianshan Qu Date: Wed, 24 Jan 2018 10:51:41 +0000 (+0800) Subject: rgw: fix RGWCompletionManager get_next stuck after going down X-Git-Tag: v13.0.2~271^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=a7158f6fa5fc38170f05f78d38c42f5cd924bf22;p=ceph.git rgw: fix RGWCompletionManager get_next stuck after going down fix the situation cond.Signal() fist then we go into cond.wait() fixes: http://tracker.ceph.com/issues/22799 Signed-off-by: Tianshan Qu --- diff --git a/src/rgw/rgw_coroutine.cc b/src/rgw/rgw_coroutine.cc index 479805b29b65..ba0ba1ecdbc7 100644 --- a/src/rgw/rgw_coroutine.cc +++ b/src/rgw/rgw_coroutine.cc @@ -68,10 +68,10 @@ int RGWCompletionManager::get_next(void **user_info) { Mutex::Locker l(lock); while (complete_reqs.empty()) { - cond.Wait(lock); if (going_down) { return -ECANCELED; } + cond.Wait(lock); } *user_info = complete_reqs.front(); complete_reqs.pop_front();