From: David Disseldorp Date: Mon, 25 Jan 2016 16:10:10 +0000 (+0100) Subject: librados: check connection state in rados_monitor_log X-Git-Tag: v10.1.0~383^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=5dfcdf696746e24bf0df0f60d0ef459c0f185570;p=ceph.git librados: check connection state in rados_monitor_log rados_monitor_log() may abort the calling process if called with a disconnected rados cluster context. Return -ENOTCONN up to the caller, rather than aborting in such cases. Fixes: #14499 Signed-off-by: David Disseldorp --- diff --git a/src/librados/RadosClient.cc b/src/librados/RadosClient.cc index 899439524fcd..1df66695c811 100644 --- a/src/librados/RadosClient.cc +++ b/src/librados/RadosClient.cc @@ -823,6 +823,10 @@ int librados::RadosClient::monitor_log(const string& level, rados_log_callback_t { Mutex::Locker l(lock); + if (state != CONNECTED) { + return -ENOTCONN; + } + if (cb == NULL) { // stop watch ldout(cct, 10) << __func__ << " removing cb " << (void*)log_cb << dendl;