Browse Source

Merge pull request #2287 from Amit-PivotalLabs/master

rafthttp/transport.go: Fix nil pointer dereference in RemovePeer
Xiang Li 11 years ago
parent
commit
daf1a913bb
1 changed files with 5 additions and 1 deletions
  1. 5 1
      rafthttp/transport.go

+ 5 - 1
rafthttp/transport.go

@@ -132,7 +132,11 @@ func (t *transport) AddPeer(id types.ID, urls []string) {
 func (t *transport) RemovePeer(id types.ID) {
 	t.mu.Lock()
 	defer t.mu.Unlock()
-	t.peers[id].Stop()
+	if peer, ok := t.peers[id]; ok {
+		peer.Stop()
+	} else {
+		log.Panicf("rafthttp: unexpected removal of unknown peer '%d'", id)
+	}
 	delete(t.peers, id)
 	delete(t.leaderStats.Followers, id.String())
 }