Rev 642: merge from ronnie in http://samba.org/~tridge/ctdb

tridge at samba.org tridge at samba.org
Mon Sep 24 03:52:36 GMT 2007


------------------------------------------------------------
revno: 642
revision-id: tridge at samba.org-20070924035235-mr0gb1jooya1u8om
parent: tridge at samba.org-20070924001907-jv6dux525q0b412a
parent: sahlberg at ronnie-20070924005226-iu9m6tfxfvtgzy32
committer: Andrew Tridgell <tridge at samba.org>
branch nick: tridge
timestamp: Mon 2007-09-24 13:52:35 +1000
message:
  merge from ronnie
modified:
  server/ctdb_recoverd.c         recoverd.c-20070503213540-bvxuyd9jm1f7ig90-1
    ------------------------------------------------------------
    revno: 432.1.297
    revision-id: sahlberg at ronnie-20070924005226-iu9m6tfxfvtgzy32
    parent: sahlberg at ronnie-20070924002748-5g1t5f04luqpqtj4
    committer: Ronnie Sahlberg <sahlberg at ronnie>
    branch nick: ctdb
    timestamp: Mon 2007-09-24 10:52:26 +1000
    message:
      when we have a public ip address mismatch (i.e. we hold addresses we 
      shouldnt   or we are not holding addresses wqe should)
      we must first freeze the local node before we set the recovery mode
    modified:
      server/ctdb_recoverd.c         recoverd.c-20070503213540-bvxuyd9jm1f7ig90-1
    ------------------------------------------------------------
    revno: 432.1.296
    revision-id: sahlberg at ronnie-20070924002748-5g1t5f04luqpqtj4
    parent: sahlberg at ronnie-20070921054548-y2bbei3hkt35sm1x
    parent: tridge at samba.org-20070924001907-jv6dux525q0b412a
    committer: Ronnie Sahlberg <sahlberg at ronnie>
    branch nick: ctdb
    timestamp: Mon 2007-09-24 10:27:48 +1000
    message:
      merge from tridge
    modified:
      config/ctdb.init               ctdb.init-20070527204758-biuh7znabuwan3zn-6
      config/ctdb.sysconfig          ctdb.sysconfig-20070527204758-biuh7znabuwan3zn-7
      config/events.d/50.samba       samba-20070601105340-vlcvnp6euoj3zdwy-3
      config/events.d/60.nfs         nfs-20070601141008-hy3h4qgbk1jd2jci-1
      include/ctdb_private.h         ctdb_private.h-20061117234101-o3qt14umlg9en8z0-13
      server/ctdb_daemon.c           ctdb_daemon.c-20070409200331-3el1kqgdb9m4ib0g-1
      server/ctdb_monitor.c          ctdb_monitor.c-20070518100625-8jf4ft1mjzmb22ck-1
      server/ctdb_persistent.c       ctdb_persistent.c-20070920053845-u2ggm5relkdor3xg-1
      server/ctdb_recover.c          ctdb_recover.c-20070503002147-admmfgt1oj6gexfo-1
      server/ctdb_server.c           ctdb.c-20061127094323-t50f58d65iaao5of-2
      server/ctdb_tunables.c         ctdb_tunables.c-20070604095258-4m34d7cm1qa7yos9-1
      tests/ctdb_persistent.c        ctdb_persistent.c-20070921022331-6ubn98ak9nwbzjzv-1
    ------------------------------------------------------------
    revno: 432.1.295
    revision-id: sahlberg at ronnie-20070921054548-y2bbei3hkt35sm1x
    parent: sahlberg at ronnie-20070921051933-v5kj9o6x1hfi65i5
    parent: tridge at samba.org-20070921054413-vqg3zm4yrdhcttwx
    committer: Ronnie Sahlberg <sahlberg at ronnie>
    branch nick: ctdb
    timestamp: Fri 2007-09-21 15:45:48 +1000
    message:
      merge from tridge
    modified:
      server/ctdb_persistent.c       ctdb_persistent.c-20070920053845-u2ggm5relkdor3xg-1
=== modified file 'server/ctdb_recoverd.c'
--- a/server/ctdb_recoverd.c	2007-09-21 02:24:02 +0000
+++ b/server/ctdb_recoverd.c	2007-09-24 00:52:26 +0000
@@ -1561,12 +1561,30 @@
 			if (ips->ips[j].pnn == pnn) {
 				if (!ctdb_sys_have_ip(ips->ips[j].sin)) {
 					DEBUG(0,("Public address '%s' is missing and we should serve this ip\n", inet_ntoa(ips->ips[j].sin.sin_addr)));
-					ctdb_ctrl_setrecmode(ctdb, CONTROL_TIMEOUT(), CTDB_CURRENT_NODE, CTDB_RECOVERY_ACTIVE);
+					ret = ctdb_ctrl_freeze(ctdb, CONTROL_TIMEOUT(), CTDB_CURRENT_NODE);
+					if (ret != 0) {
+						DEBUG(0,(__location__ " Failed to freeze node due to public ip address mismatches\n"));
+						goto again;
+					}
+					ret = ctdb_ctrl_setrecmode(ctdb, CONTROL_TIMEOUT(), CTDB_CURRENT_NODE, CTDB_RECOVERY_ACTIVE);
+					if (ret != 0) {
+						DEBUG(0,(__location__ " Failed to activate recovery mode due to public ip address mismatches\n"));
+						goto again;
+					}
 				}
 			} else {
 				if (ctdb_sys_have_ip(ips->ips[j].sin)) {
 					DEBUG(0,("We are still serving a public address '%s' that we should not be serving.\n", inet_ntoa(ips->ips[j].sin.sin_addr)));
-					ctdb_ctrl_setrecmode(ctdb, CONTROL_TIMEOUT(), CTDB_CURRENT_NODE, CTDB_RECOVERY_ACTIVE);
+					ret = ctdb_ctrl_freeze(ctdb, CONTROL_TIMEOUT(), CTDB_CURRENT_NODE);
+					if (ret != 0) {
+						DEBUG(0,(__location__ " Failed to freeze node due to public ip address mismatches\n"));
+						goto again;
+					}
+					ret = ctdb_ctrl_setrecmode(ctdb, CONTROL_TIMEOUT(), CTDB_CURRENT_NODE, CTDB_RECOVERY_ACTIVE);
+					if (ret != 0) {
+						DEBUG(0,(__location__ " Failed to activate recovery mode due to public ip address mismatches\n"));
+						goto again;
+					}
 				}
 			}
 		}



More information about the samba-cvs mailing list