add some extra debugging statements to the client side code sending controls
authorRonnie Sahlberg <ronniesahlberg@gmail.com>
Wed, 11 Aug 2010 04:42:44 +0000 (14:42 +1000)
committerRonnie Sahlberg <ronniesahlberg@gmail.com>
Wed, 11 Aug 2010 04:42:44 +0000 (14:42 +1000)
and failing. in particular the GETRECMASTER control

client/ctdb_client.c

index 7caa5cbe69b891eabba8873539d8fece624656c0..0b65466c8ee927511aed00414a2047e4f8da7707 100644 (file)
@@ -282,6 +282,11 @@ int ctdb_socket_connect(struct ctdb_context *ctdb)
        ctdb->daemon.queue = ctdb_queue_setup(ctdb, ctdb, ctdb->daemon.sd, 
                                              CTDB_DS_ALIGNMENT, 
                                              ctdb_client_read_cb, ctdb);
+       if (ctdb->daemon.queue == NULL) {
+               DEBUG(DEBUG_ERR,(__location__ " Failed to setup queue to daemon\n"));
+               return -1;
+       }
+
        return 0;
 }
 
@@ -835,6 +840,7 @@ struct ctdb_client_control_state *ctdb_control_send(struct ctdb_context *ctdb,
 
        ret = ctdb_client_queue_pkt(ctdb, &(c->hdr));
        if (ret != 0) {
+               DEBUG(DEBUG_ERR,(__location__ " Failed to queue packet to ctdb daemon\n"));
                talloc_free(state);
                return NULL;
        }
@@ -864,6 +870,7 @@ int ctdb_control_recv(struct ctdb_context *ctdb,
        }
 
        if (state == NULL) {
+               DEBUG(DEBUG_ERR,(__location__ " ctdb_control_recv called with state==NULL\n"));
                return -1;
        }
 
@@ -879,12 +886,12 @@ int ctdb_control_recv(struct ctdb_context *ctdb,
        }
 
        if (state->state != CTDB_CONTROL_DONE) {
-               DEBUG(DEBUG_ERR,(__location__ " ctdb_control_recv failed\n"));
+               DEBUG(DEBUG_ERR,(__location__ " ctdb_control_recv failed with state:%d\n", state->state));
                if (state->async.fn) {
                        state->async.fn(state);
                }
                talloc_free(tmp_ctx);
-               return -1;
+               return -2;
        }
 
        if (state->errormsg) {
@@ -896,7 +903,7 @@ int ctdb_control_recv(struct ctdb_context *ctdb,
                        state->async.fn(state);
                }
                talloc_free(tmp_ctx);
-               return -1;
+               return -3;
        }
 
        if (outdata) {
@@ -1122,9 +1129,16 @@ struct ctdb_client_control_state *
 ctdb_ctrl_getrecmaster_send(struct ctdb_context *ctdb, TALLOC_CTX *mem_ctx, 
                        struct timeval timeout, uint32_t destnode)
 {
-       return ctdb_control_send(ctdb, destnode, 0, 
+       struct ctdb_client_control_state *state;
+
+       state = ctdb_control_send(ctdb, destnode, 0, 
                           CTDB_CONTROL_GET_RECMASTER, 0, tdb_null, 
                           mem_ctx, &timeout, NULL);
+       if (state == NULL) {
+               DEBUG(DEBUG_ERR,(__location__ " Failed to send getrecmaster control to node %u\n", destnode));
+       }
+
+       return state;
 }
 
 int ctdb_ctrl_getrecmaster_recv(struct ctdb_context *ctdb, TALLOC_CTX *mem_ctx, struct ctdb_client_control_state *state, uint32_t *recmaster)
@@ -1134,7 +1148,7 @@ int ctdb_ctrl_getrecmaster_recv(struct ctdb_context *ctdb, TALLOC_CTX *mem_ctx,
 
        ret = ctdb_control_recv(ctdb, state, mem_ctx, NULL, &res, NULL);
        if (ret != 0) {
-               DEBUG(DEBUG_ERR,(__location__ " ctdb_ctrl_getrecmaster_recv failed\n"));
+               DEBUG(DEBUG_ERR,(__location__ " ctdb_ctrl_getrecmaster_recv failed with error:%d\n", ret));
                return -1;
        }