[SCM] CTDB repository - branch master updated - ctdb-1.0.90-19-gdb7195d

Ronnie Sahlberg sahlberg at samba.org
Thu Sep 24 21:18:28 MDT 2009


The branch, master has been updated
       via  db7195d762f69577c4e28f0b0e0ded0ac7f91f0b (commit)
       via  f66d17fb2e81a35d5adb3754e1cc902f76b4590a (commit)
      from  0e6a52ee66830e7742eaa392cd3dd9caeb808fb3 (commit)

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


- Log -----------------------------------------------------------------
commit db7195d762f69577c4e28f0b0e0ded0ac7f91f0b
Merge: 0e6a52ee66830e7742eaa392cd3dd9caeb808fb3 f66d17fb2e81a35d5adb3754e1cc902f76b4590a
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Sep 25 13:18:18 2009 +1000

    Merge root at 10.1.1.27:/shared/ctdb/ctdb-git

commit f66d17fb2e81a35d5adb3754e1cc902f76b4590a
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Fri Sep 25 13:14:53 2009 +1000

    with the new banning logic with one struct for each node we no longer "forget" the other culprits as often as we used to do, which means that things like "ctdb recover" can now actually lead to a node becomming banned if we perform too many recoveries too frequently.
    
    change this to provide absolution to all nodes once they have participated in a recovery session.

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

Summary of changes:
 server/ctdb_recoverd.c |   21 +++++++++++++++++++++
 1 files changed, 21 insertions(+), 0 deletions(-)


Changeset truncated at 500 lines:

diff --git a/server/ctdb_recoverd.c b/server/ctdb_recoverd.c
index f5166ab..7e81e20 100644
--- a/server/ctdb_recoverd.c
+++ b/server/ctdb_recoverd.c
@@ -1409,6 +1409,27 @@ static int do_recovery(struct ctdb_recoverd *rec,
 
 	rec->need_recovery = false;
 
+	/* we managed to complete a full recovery, make sure to forgive
+	   any past sins by the nodes that could now participate in the
+	   recovery.
+	*/
+	DEBUG(DEBUG_ERR,("Resetting ban count to 0 for all nodes\n"));
+	for (i=0;i<nodemap->num;i++) {
+		struct ctdb_banning_state *ban_state;
+
+		if (nodemap->nodes[i].flags & NODE_FLAGS_DISCONNECTED) {
+			continue;
+		}
+
+		ban_state = (struct ctdb_banning_state *)ctdb->nodes[nodemap->nodes[i].pnn]->ban_state;
+		if (ban_state == NULL) {
+			continue;
+		}
+
+		ban_state->count = 0;
+	}
+
+
 	/* We just finished a recovery successfully. 
 	   We now wait for rerecovery_timeout before we allow 
 	   another recovery to take place.


-- 
CTDB repository


More information about the samba-cvs mailing list