Merge pull request #2287 from Amit-PivotalLabs/master

rafthttp/transport.go: Fix nil pointer dereference in RemovePeer
release-2.0
Xiang Li 2015-02-12 14:49:12 -08:00
commit daf1a913bb
1 changed files with 5 additions and 1 deletions

View File

@ -132,7 +132,11 @@ func (t *transport) AddPeer(id types.ID, urls []string) {
func (t *transport) RemovePeer(id types.ID) { func (t *transport) RemovePeer(id types.ID) {
t.mu.Lock() t.mu.Lock()
defer t.mu.Unlock() 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.peers, id)
delete(t.leaderStats.Followers, id.String()) delete(t.leaderStats.Followers, id.String())
} }