Rev 400: - use a CTDB_BROADCAST_ALL for the attach message so it goes to currently disconnected nodes in http://samba.org/~tridge/ctdb

tridge at samba.org tridge at samba.org
Wed May 30 04:35:23 GMT 2007


------------------------------------------------------------
revno: 400
revision-id: tridge at samba.org-20070530043522-e7fwbj5jcoq6m8b1
parent: tridge at samba.org-20070530032650-s6oop81di7yafp2n
committer: Andrew Tridgell <tridge at samba.org>
branch nick: tridge
timestamp: Wed 2007-05-30 14:35:22 +1000
message:
  - use a CTDB_BROADCAST_ALL for the attach message so it goes to currently disconnected nodes
  - start node monitoring only after transport starts
  - check if a node is already disconnected in the node dead function
modified:
  common/ctdb.c                  ctdb.c-20061127094323-t50f58d65iaao5of-2
  common/ctdb_daemon.c           ctdb_daemon.c-20070409200331-3el1kqgdb9m4ib0g-1
  common/ctdb_ltdb.c             ctdb_ltdb.c-20061128065342-to93h6eejj5kon81-2
=== modified file 'common/ctdb.c'
--- a/common/ctdb.c	2007-05-29 06:23:47 +0000
+++ b/common/ctdb.c	2007-05-30 04:35:22 +0000
@@ -371,6 +371,12 @@
 */
 void ctdb_node_dead(struct ctdb_node *node)
 {
+	if (!(node->flags & NODE_FLAGS_CONNECTED)) {
+		DEBUG(1,("%s: node %s is already marked disconnected: %u connected\n", 
+			 node->ctdb->name, node->name, 
+			 node->ctdb->num_connected));
+		return;
+	}
 	node->ctdb->num_connected--;
 	node->flags &= ~NODE_FLAGS_CONNECTED;
 	node->rx_cnt = 0;
@@ -385,6 +391,12 @@
 */
 void ctdb_node_connected(struct ctdb_node *node)
 {
+	if (node->flags & NODE_FLAGS_CONNECTED) {
+		DEBUG(1,("%s: node %s is already marked connected: %u connected\n", 
+			 node->ctdb->name, node->name, 
+			 node->ctdb->num_connected));
+		return;
+	}
 	node->ctdb->num_connected++;
 	node->dead_count = 0;
 	node->flags |= NODE_FLAGS_CONNECTED;

=== modified file 'common/ctdb_daemon.c'
--- a/common/ctdb_daemon.c	2007-05-30 03:26:50 +0000
+++ b/common/ctdb_daemon.c	2007-05-30 04:35:22 +0000
@@ -50,6 +50,9 @@
 		DEBUG(0,("Failed to start recovery daemon\n"));
 		exit(11);
 	}
+
+	/* start monitoring for dead nodes */
+	ctdb_start_monitoring(ctdb);
 }
 
 /* go into main ctdb loop */
@@ -772,9 +775,6 @@
 
 	ctdb->ev = event_context_init(NULL);
 
-	/* start monitoring for dead nodes */
-	ctdb_start_monitoring(ctdb);
-
 	/* start frozen, then let the first election sort things out */
 	if (!ctdb_blocking_freeze(ctdb)) {
 		DEBUG(0,("Failed to get initial freeze\n"));

=== modified file 'common/ctdb_ltdb.c'
--- a/common/ctdb_ltdb.c	2007-05-29 03:48:30 +0000
+++ b/common/ctdb_ltdb.c	2007-05-30 04:35:22 +0000
@@ -425,7 +425,7 @@
 	}
 	
 	/* tell all the other nodes about this database */
-	ctdb_daemon_send_control(ctdb, CTDB_BROADCAST_VNNMAP, 0,
+	ctdb_daemon_send_control(ctdb, CTDB_BROADCAST_ALL, 0,
 				 CTDB_CONTROL_DB_ATTACH, 0, CTDB_CTRL_FLAG_NOREPLY,
 				 indata, NULL, NULL);
 



More information about the samba-cvs mailing list