]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
ctdb-recoverd: Always send unknown leader broadcast when starting election
authorMartin Schwenke <martin@meltin.net>
Sat, 22 Jan 2022 19:18:51 +0000 (06:18 +1100)
committerAmitay Isaacs <amitay@samba.org>
Mon, 14 Feb 2022 01:47:31 +0000 (01:47 +0000)
This is currently missed when the cluster lock is lost.

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

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
ctdb/server/ctdb_recoverd.c

index a28a287b5aa07b58618d33f0dd24fd911efeb3fd..820bb6276944139cb7800639c7a24cd6ce988a6b 100644 (file)
@@ -1877,6 +1877,8 @@ static void force_election(struct ctdb_recoverd *rec)
        }
 
        rec->election_in_progress = true;
+       /* Let other nodes know that an election is underway */
+       leader_broadcast_send(rec, CTDB_UNKNOWN_PNN);
 
        if (cluster_lock_enabled(rec)) {
                cluster_lock_election(rec);
@@ -1976,9 +1978,6 @@ static void leader_broadcast_timeout_handler(struct tevent_context *ev,
 
        rec->leader_broadcast_timeout_te = NULL;
 
-       /* Let other nodes know that an election is underway */
-       leader_broadcast_send(rec, CTDB_UNKNOWN_PNN);
-
        D_NOTICE("Leader broadcast timeout. Force election\n");
        force_election(rec);
 }