[SCM] CTDB repository - branch 1.0.82 updated - ctdb-1.0.82-54-g0bbe9df

Ronnie Sahlberg sahlberg at samba.org
Tue Oct 13 15:27:33 MDT 2009


The branch, 1.0.82 has been updated
       via  0bbe9df9ec0805d29dc8e207d1113caa03d8e698 (commit)
       via  b74ba9a75db431a59b0e68a4b57c48d8c28221d5 (commit)
      from  b09f54e0ad5ad3a9a495ab25e56a84422b8679b5 (commit)

http://gitweb.samba.org/?p=sahlberg/ctdb.git;a=shortlog;h=1.0.82


- Log -----------------------------------------------------------------
commit 0bbe9df9ec0805d29dc8e207d1113caa03d8e698
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Oct 14 08:25:44 2009 +1100

    New version 1.0.82-3

commit b74ba9a75db431a59b0e68a4b57c48d8c28221d5
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Oct 14 08:23:49 2009 +1100

    From Wolfgang Mueller,
    when we detect a dmaster migration error, create a recovery to replair the databases instead of calling ctdb_fatal()

-----------------------------------------------------------------------

Summary of changes:
 packaging/RPM/ctdb.spec |    4 +++-
 server/ctdb_call.c      |    8 +++++++-
 2 files changed, 10 insertions(+), 2 deletions(-)


Changeset truncated at 500 lines:

diff --git a/packaging/RPM/ctdb.spec b/packaging/RPM/ctdb.spec
index dc4e023..4af01db 100644
--- a/packaging/RPM/ctdb.spec
+++ b/packaging/RPM/ctdb.spec
@@ -5,7 +5,7 @@ Vendor: Samba Team
 Packager: Samba Team <samba at samba.org>
 Name: ctdb
 Version: 1.0.82
-Release: 12
+Release: 13
 Epoch: 0
 License: GNU GPL version 3
 Group: System Environment/Daemons
@@ -133,6 +133,8 @@ fi
 %{_libdir}/pkgconfig/ctdb.pc
 
 %changelog
+* Wed Oct 14 2009 : Version 1.0.82-13
+ - Recover the database instead of shutting down when there is a dmaster error detected - from Wolfgang Mueller.
 * Tue Oct 13 2009 : Version 1.0.82-12
  - Revert the lock order patch and apply a simpler workaround from Volker instead.
 * Thu Oct 10 2009 : Version 1.0.82-10
diff --git a/server/ctdb_call.c b/server/ctdb_call.c
index b666a9e..c2591a7 100644
--- a/server/ctdb_call.c
+++ b/server/ctdb_call.c
@@ -343,7 +343,13 @@ void ctdb_request_dmaster(struct ctdb_context *ctdb, struct ctdb_req_header *hdr
 			 (unsigned long long)c->rsn, (unsigned long long)header.rsn, c->hdr.reqid,
 			 (key.dsize >= 4)?(*(uint32_t *)key.dptr):0));
 		if (header.rsn != 0 || header.dmaster != ctdb->pnn) {
-			ctdb_fatal(ctdb, "ctdb_req_dmaster from non-master");
+			/*
+			 * we used to exit here with a ctdb_fatal(ctdb, "ctdb_req_dmaster from non-master");
+			 * as long as we haven't found a protocol problem we just initiate recovery
+			 */
+			DEBUG(DEBUG_ALERT,(__location__"real-dmaster problem triggering recovery\n"));
+			ctdb->recovery_mode = CTDB_RECOVERY_ACTIVE;
+			ctdb_ltdb_unlock(ctdb_db, key);
 			return;
 		}
 	}


-- 
CTDB repository


More information about the samba-cvs mailing list