we need to listen at transport initialise stage to find our own node number
authorAndrew Tridgell <tridge@samba.org>
Wed, 30 May 2007 04:46:14 +0000 (14:46 +1000)
committerAndrew Tridgell <tridge@samba.org>
Wed, 30 May 2007 04:46:14 +0000 (14:46 +1000)
(This used to be ctdb commit 4a9455dfbe95e53884b46ad26dba0c33e3432ba9)

ctdb/common/ctdb_monitor.c
ctdb/ib/ibw_ctdb_init.c
ctdb/tcp/tcp_init.c

index 44b2c4a6639353dcfaabd74ea5ad0aaa412f2a1b..93ca283ed8d5a53830f899c1c83190ce3d2325aa 100644 (file)
@@ -64,13 +64,14 @@ static void ctdb_check_for_dead_nodes(struct event_context *ev, struct timed_eve
 
                if (node->dead_count >= CTDB_MONITORING_DEAD_COUNT) {
                        ctdb_node_dead(node);
+                       ctdb_send_keepalive(ctdb, node->vnn);
                        /* maybe tell the transport layer to kill the
                           sockets as well?
                        */
                        continue;
                }
                
-               if (node->tx_cnt == 0) {
+               if (node->tx_cnt == 0 && (node->flags & NODE_FLAGS_CONNECTED)) {
                        ctdb_send_keepalive(ctdb, node->vnn);
                }
 
index b41c61687bc6de87aab56c9f609ab7276805d858..b5e6c5cffb37583b81dd7aa08132b5804bcf9fa6 100644 (file)
@@ -88,6 +88,10 @@ static int ctdb_ibw_initialise(struct ctdb_context *ctdb)
                }
        }
 
+       /* listen on our own address */
+       if (ctdb_ibw_listen(ctdb, 10)) /* TODO: backlog as param */
+               return -1;
+
        return 0;
 }
 
@@ -99,10 +103,6 @@ static int ctdb_ibw_start(struct ctdb_context *ctdb)
 {
        int i, ret;
 
-       /* listen on our own address */
-       if (ctdb_ibw_listen(ctdb, 10)) /* TODO: backlog as param */
-               return -1;
-
        /* everything async here */
        for (i=0;i<ctdb->num_nodes;i++) {
                struct ctdb_node *node = ctdb->nodes[i];
index 665336e947e33c5f2d64fc29f3f623098ae23c3a..3ccf580188f05f4c37634b6d0eb082bd08fc7fb8 100644 (file)
@@ -52,6 +52,9 @@ static int ctdb_tcp_initialise(struct ctdb_context *ctdb)
 {
        int i;
 
+       /* listen on our own address */
+       if (ctdb_tcp_listen(ctdb) != 0) return -1;
+
        for (i=0; i<ctdb->num_nodes; i++) {
                if (ctdb_tcp_add_node(ctdb->nodes[i]) != 0) {
                        DEBUG(0, ("methods->add_node failed at %d\n", i));
@@ -69,9 +72,6 @@ static int ctdb_tcp_start(struct ctdb_context *ctdb)
 {
        int i;
 
-       /* listen on our own address */
-       if (ctdb_tcp_listen(ctdb) != 0) return -1;
-
        /* startup connections to the other servers - will happen on
           next event loop */
        for (i=0;i<ctdb->num_nodes;i++) {