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 <[email protected]>
Date:   Fri Sep 25 13:18:18 2009 +1000

    Merge [email protected]:/shared/ctdb/ctdb-git

commit f66d17fb2e81a35d5adb3754e1cc902f76b4590a
Author: Ronnie Sahlberg <[email protected]>
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

Reply via email to