Rev 397: wait for local tcp services like smbd to come up before allowing ctdb to start talking to other nodes in http://samba.org/~tridge/ctdb

tridge at samba.org tridge at samba.org
Wed May 30 02:27:59 GMT 2007


------------------------------------------------------------
revno: 397
revision-id: tridge at samba.org-20070530022758-26c4o6952lel86gt
parent: tridge at samba.org-20070530011752-x8gi0mp8otg937uu
committer: Andrew Tridgell <tridge at samba.org>
branch nick: tridge
timestamp: Wed 2007-05-30 12:27:58 +1000
message:
  wait for local tcp services like smbd to come up before allowing ctdb to start talking to other nodes
modified:
  common/ctdb_daemon.c           ctdb_daemon.c-20070409200331-3el1kqgdb9m4ib0g-1
  tools/events                   events-20070529030121-04fjh63cxfh8v1pj-1
=== modified file 'common/ctdb_daemon.c'
--- a/common/ctdb_daemon.c	2007-05-29 07:23:29 +0000
+++ b/common/ctdb_daemon.c	2007-05-30 02:27:58 +0000
@@ -50,6 +50,12 @@
 		return;
 	}
 
+	ret = ctdb_event_script(ctdb, "startup");
+	if (ret != 0) {
+		DEBUG(0,("Failed startup event script\n"));
+		return;
+	}
+
 	/* start the transport running */
 	if (ctdb->methods->start(ctdb) != 0) {
 		DEBUG(0,("transport failed to start!\n"));

=== modified file 'tools/events'
--- a/tools/events	2007-05-30 00:21:16 +0000
+++ b/tools/events	2007-05-30 02:27:58 +0000
@@ -1,10 +1,28 @@
 #!/bin/sh
 # sample event script for ctdb
 
+. /etc/sysconfig/ctdb
+
 cmd="$1"
 shift
 
 case $cmd in 
+     startup)
+	# wait for local services to come up
+	[ -z "$CTDB_WAIT_TCP_PORTS" ] || {
+	  all_ok=0
+	  while [ $all_ok -eq 0 ]; do
+	  	  all_ok=1
+	  	  for p in $CTDB_WAIT_TCP_PORTS; do
+	  	      /usr/bin/nc -z 127.0.0.1 $p || all_ok=0
+		  done
+		  [ $all_ok -eq 1 ] || sleep 1
+          done
+	  echo "Local services on $CTDB_WAIT_TCP_PORTS are up"
+	}
+	exit 0;	
+	;;
+	
      takeip)
 	if [ $# != 3 ]; then
 	   echo "must supply interface, IP and maskbits"
@@ -13,6 +31,7 @@
 	iface=$1
 	ip=$2
 	maskbits=$3
+
 	/sbin/ip addr add $ip/$maskbits dev $iface || {
 		 echo "Failed to add $ip/$maskbits on dev $iface"
 		 exit 1



More information about the samba-cvs mailing list