X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fceph.c;h=e6d3767b3140d786698f054796b23b4ed903b78f;hb=5523a080010dcb7a61dc0dccc3969a2a048e52f9;hp=5b7923915db798d1c62419c124addf136eecb56a;hpb=d061c270fabc5dba961cf2b94ebe968e9a89b899;p=collectd.git diff --git a/src/ceph.c b/src/ceph.c index 5b792391..e6d3767b 100644 --- a/src/ceph.c +++ b/src/ceph.c @@ -297,6 +297,11 @@ ceph_cb_number(void *ctx, const char *number_val, yajl_len_t number_len) { latency_type = 1; + /* depth >= 2 => (stack[-1] != NULL && stack[-2] != NULL) */ + assert ((state->depth < 2) + || ((state->stack[state->depth - 1] != NULL) + && (state->stack[state->depth - 2] != NULL))); + /* Super-special case for filestore.journal_wr_bytes.avgcount: For * some reason, Ceph schema encodes this as a count/sum pair while all * other "Bytes" data (excluding used/capacity bytes for OSD space) uses @@ -1579,8 +1584,6 @@ static int ceph_read(void) /******* lifecycle *******/ static int ceph_init(void) { - int ret; - #if defined(HAVE_SYS_CAPABILITY_H) && defined(CAP_DAC_OVERRIDE) if (check_capability (CAP_DAC_OVERRIDE) != 0) { @@ -1598,9 +1601,13 @@ static int ceph_init(void) ceph_daemons_print(); - ret = cconn_main_loop(ASOK_REQ_VERSION); + if (g_num_daemons < 1) + { + ERROR ("ceph plugin: No daemons configured. See the \"Daemon\" config option."); + return ENOENT; + } - return (ret) ? ret : 0; + return cconn_main_loop(ASOK_REQ_VERSION); } static int ceph_shutdown(void)