diff options
author | Martin Schwenke <martin@meltin.net> | 2022-01-23 05:49:18 +1100 |
---|---|---|
committer | Jule Anger <janger@samba.org> | 2022-02-15 09:01:14 +0000 |
commit | 758e953ee07343e1e3fd0389eb2d82c0654be61c (patch) | |
tree | 5cf032db3c5b93c93651921acbbb0455bbc22f74 /ctdb | |
parent | 07540a8cf4597f683e6661cc4418b858f59d7312 (diff) | |
download | samba-758e953ee07343e1e3fd0389eb2d82c0654be61c.tar.gz |
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 <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
(cherry picked from commit 9b3fab052bd2dccf2fc3fe9bd2b4354dff0b9ebb)
Diffstat (limited to 'ctdb')
-rw-r--r-- | ctdb/server/ctdb_recoverd.c | 4 |
1 files changed, 2 insertions, 2 deletions
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 ? |