]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
librados: check connection state in rados_monitor_log
authorDavid Disseldorp <ddiss@suse.de>
Mon, 25 Jan 2016 16:10:10 +0000 (17:10 +0100)
committerDavid Disseldorp <ddiss@suse.de>
Tue, 9 Feb 2016 18:23:42 +0000 (19:23 +0100)
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 <ddiss@suse.de>
src/librados/RadosClient.cc

index 899439524fcd7af6c04fe778aba8835b5d4726fb..1df66695c8115a41164168b70cae4e9513ef703a 100644 (file)
@@ -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;