From b1812a410fbca6fb77bf95b496408c7b75d0a370 Mon Sep 17 00:00:00 2001 From: Nima Yahyazadeh Date: Mon, 17 Jun 2019 11:45:25 -0400 Subject: [PATCH] Raft HTTP: fix pause/resume race condition --- etcdserver/api/rafthttp/transport.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/etcdserver/api/rafthttp/transport.go b/etcdserver/api/rafthttp/transport.go index d6e55091c33..7191c3d6063 100644 --- a/etcdserver/api/rafthttp/transport.go +++ b/etcdserver/api/rafthttp/transport.go @@ -437,12 +437,16 @@ type Pausable interface { } func (t *Transport) Pause() { + t.mu.RLock() + defer t.mu.RUnlock() for _, p := range t.peers { p.(Pausable).Pause() } } func (t *Transport) Resume() { + t.mu.RLock() + defer t.mu.RUnlock() for _, p := range t.peers { p.(Pausable).Resume() }