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)
committerAmitay Isaacs <amitay@samba.org>
Mon, 25 Feb 2019 01:12:17 +0000 (02:12 +0100)
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>
ctdb/server/ctdb_recoverd.c

index c3beac7d18bd32d1258b409b37d0b8cae475d35d..584d65d61a7fff796ca4b380fe99a6721867636b 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;