From: Martin Schwenke Date: Sat, 22 Jan 2022 18:49:18 +0000 (+1100) Subject: ctdb-recoverd: Consistently have caller set election-in-progress X-Git-Tag: tevent-0.12.0~724 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9b3fab052bd2dccf2fc3fe9bd2b4354dff0b9ebb;p=thirdparty%2Fsamba.git ctdb-recoverd: Consistently have caller set election-in-progress The problem here is that election-in-progress must be set to potentially avoid restarting the election broadcast timeout in main_loop(), so this is already done by leader_handler(). Have force_election() set election-in-progress for all election types and do not bother setting it in cluster_lock_election(). BUG: https://bugzilla.samba.org/show_bug.cgi?id=14958 Signed-off-by: Martin Schwenke Reviewed-by: Amitay Isaacs --- diff --git a/ctdb/server/ctdb_recoverd.c b/ctdb/server/ctdb_recoverd.c index 7a13339bf37..a28a287b5aa 100644 --- a/ctdb/server/ctdb_recoverd.c +++ b/ctdb/server/ctdb_recoverd.c @@ -1848,7 +1848,6 @@ static void cluster_lock_election(struct ctdb_recoverd *rec) } rec->leader = CTDB_UNKNOWN_PNN; - rec->election_in_progress = true; ok = cluster_lock_take(rec); if (ok) { @@ -1877,13 +1876,14 @@ static void force_election(struct ctdb_recoverd *rec) return; } + rec->election_in_progress = true; + if (cluster_lock_enabled(rec)) { cluster_lock_election(rec); return; } talloc_free(rec->election_timeout); - rec->election_in_progress = true; rec->election_timeout = tevent_add_timer( ctdb->ev, ctdb, fast_start ?