From cd568548fda669f268c6a2e299e9a9fefb7eb720 Mon Sep 17 00:00:00 2001 From: Jason Wilder Date: Fri, 12 Feb 2016 12:06:23 -0700 Subject: [PATCH] Fix race in peerStore --- services/meta/raft_state.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/services/meta/raft_state.go b/services/meta/raft_state.go index 6d7140bb3c..720555c793 100644 --- a/services/meta/raft_state.go +++ b/services/meta/raft_state.go @@ -325,14 +325,19 @@ func (l *raftLayer) Close() error { return l.ln.Close() } // peerStore is an in-memory implementation of raft.PeerStore type peerStore struct { + mu sync.RWMutex peers []string } func (m *peerStore) Peers() ([]string, error) { + m.mu.RLock() + defer m.mu.RUnlock() return m.peers, nil } func (m *peerStore) SetPeers(peers []string) error { + m.mu.Lock() + defer m.mu.Unlock() m.peers = peers return nil }