Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP5:GA
pacemaker.22685
rh#1535221-0001-Fix-attrd-start-new-election-if...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File rh#1535221-0001-Fix-attrd-start-new-election-if-writer-is-lost-1.1.patch of Package pacemaker.22685
From 7a4e640df204acf34dd5766f551b1a9fea37c8ac Mon Sep 17 00:00:00 2001 From: Ken Gaillot <kgaillot@redhat.com> Date: Thu, 3 Jan 2019 15:13:42 -0600 Subject: [PATCH] Fix: attrd: start new election if writer is lost If a writer is shutting down when it receives an attribute update, it will not write it to the CIB. Previously, a new election wouldn't be held until another attribute needed to be written, which may not happen in a reasonable time (or at all). Now, we trigger a new election when the writer leaves the cluster. rhbz#1535221 --- attrd/attrd_elections.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/attrd/attrd_elections.c b/attrd/attrd_elections.c index 198423fd4..921fb956f 100644 --- a/attrd/attrd_elections.c +++ b/attrd/attrd_elections.c @@ -1,5 +1,5 @@ /* - * Copyright 2013-2018 Andrew Beekhof <andrew@beekhof.net> + * Copyright 2013-2019 Andrew Beekhof <andrew@beekhof.net> * * This source code is licensed under the GNU General Public License version 2 * or later (GPLv2+) WITHOUT ANY WARRANTY. @@ -126,12 +126,20 @@ attrd_declare_winner() void attrd_remove_voter(const crm_node_t *peer) { + election_remove(writer, peer->uname); if (peer_writer && safe_str_eq(peer->uname, peer_writer)) { free(peer_writer); peer_writer = NULL; crm_notice("Lost attribute writer %s", peer->uname); + + /* If the writer received attribute updates during its shutdown, it will + * not have written them to the CIB. Ensure we get a new writer so they + * are written out. This means that every node that sees the writer + * leave will start a new election, but that's better than losing + * attributes. + */ + attrd_start_election_if_needed(); } - election_remove(writer, peer->uname); } void -- 2.34.1
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor