From 16767fbd83076e93813667d4274c8626f368d3f3 Mon Sep 17 00:00:00 2001 From: ale <ale@incal.net> Date: Tue, 14 Oct 2014 22:27:59 +0100 Subject: [PATCH] trigger the update channel for slave -> slave transitions Fixes a bug where master changes that did not involve the local node were not triggering updates. --- masterelection/masterelection.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/masterelection/masterelection.go b/masterelection/masterelection.go index 231be050..da2f9fd4 100644 --- a/masterelection/masterelection.go +++ b/masterelection/masterelection.go @@ -63,16 +63,15 @@ func (m *MasterElection) GetMasterAddr() string { } func (m *MasterElection) setState(state int) { - if m.State == state { - return - } log.Printf("masterelection: %s -> %s", stateToString(m.State), stateToString(state)) + // Order is important here: set state before triggering the + // update channel so that the receiver sees the right value. + m.State = state if m.StateChange != nil { m.StateChange <- state } - m.State = state } func (m *MasterElection) stopper() { -- GitLab