[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