Gitweb:
http://git.fedorahosted.org/git/?p=cluster.git;a=commitdiff;h=441bff8b11c...
Commit: 441bff8b11c094f5a005a6202b2bf9e7e39946a5
Parent: 52816e6e75e47f23414afde26bdce2f0d6f21feb
Author: Ryan McCabe <rmccabe(a)redhat.com>
AuthorDate: Thu Jun 9 10:53:29 2016 -0400
Committer: Ryan McCabe <rmccabe(a)redhat.com>
CommitterDate: Thu Jun 9 10:53:29 2016 -0400
rgmanager: Forgot that we were transition master on quorum loss
Clear the _master flag if we lose quorum, so that in the event quorum is
regained and we lose the race for the transition-master lock, we do not
wrongly think we're still master.
Resolves: rhbz#1084053
---
rgmanager/include/event.h | 1 +
rgmanager/src/daemons/main.c | 1 +
rgmanager/src/daemons/rg_event.c | 3 +++
3 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/rgmanager/include/event.h b/rgmanager/include/event.h
index 9fc9521..1442a64 100644
--- a/rgmanager/include/event.h
+++ b/rgmanager/include/event.h
@@ -120,6 +120,7 @@ int slang_process_event(event_table_t *event_table, event_t *ev);
/* For distributed events. */
void set_transition_throttling(int nsecs);
int get_transition_throttling(void);
+void drop_event_master(void);
/* Simplified service start. */
int service_op_start(char *svcName, int *target_list, int target_list_len,
diff --git a/rgmanager/src/daemons/main.c b/rgmanager/src/daemons/main.c
index 127015b..6f0b39f 100644
--- a/rgmanager/src/daemons/main.c
+++ b/rgmanager/src/daemons/main.c
@@ -136,6 +136,7 @@ membership_update(void)
logt_print(LOG_DEBUG, "Flushing resource group cache\n");
kill_resource_groups();
rg_clear_initialized(0);
+ drop_event_master();
return -1;
} else if (!rg_quorate()) {
diff --git a/rgmanager/src/daemons/rg_event.c b/rgmanager/src/daemons/rg_event.c
index 4a747e0..1814c60 100644
--- a/rgmanager/src/daemons/rg_event.c
+++ b/rgmanager/src/daemons/rg_event.c
@@ -46,6 +46,9 @@ void flag_reconfigure(int sig);
event_table_t *master_event_table = NULL;
+void drop_event_master(void) {
+ _master = 0;
+}
void
set_transition_throttling(int nsecs)