ctdb-recoverd: Ban node on unknown error when taking recovery lock
authorMartin Schwenke <martin@meltin.net>
Thu, 10 Jan 2019 03:01:57 +0000 (14:01 +1100)
committerKarolin Seeger <kseeger@samba.org>
Mon, 4 Mar 2019 10:37:54 +0000 (10:37 +0000)
We really shouldn't see unknown errors.  They probably represent a
misconfigured recovery lock or similar.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=13800

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
(cherry picked from commit 45a77d65b2e39b4af94da4ab99575f4ee08a7ebd)

ctdb/server/ctdb_recoverd.c

index 560e632d028693051bfdf32220513ccb3223cab1..47ccda15a1a8196b93690ee79c46a2aa0f17c41d 100644 (file)
@@ -923,6 +923,17 @@ static void take_reclock_handler(char status,
 
        default:
                D_ERR("Unable to take recover lock - unknown error\n");
+
+               {
+                       struct ctdb_recoverd *rec = s->rec;
+                       struct ctdb_context *ctdb = rec->ctdb;
+                       uint32_t pnn = ctdb_get_pnn(ctdb);
+
+                       D_ERR("Banning this node\n");
+                       ctdb_ban_node(rec,
+                                     pnn,
+                                     ctdb->tunable.recovery_ban_period);
+               }
        }
 
        s->done = true;