mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
fix panic when restart after removeMember
fix panic when restart after removeMember fix panic when restart after removeMember
This commit is contained in:
parent
682b867653
commit
d108a241d0
@ -339,24 +339,30 @@ func (t *Transport) RemoveAllPeers() {
|
||||
|
||||
// the caller of this function must have the peers mutex.
|
||||
func (t *Transport) removePeer(id types.ID) {
|
||||
if peer, ok := t.peers[id]; ok {
|
||||
// etcd may remove a member again on startup due to WAL files replaying.
|
||||
peer, ok := t.peers[id]
|
||||
if ok {
|
||||
peer.stop()
|
||||
} else {
|
||||
if t.Logger != nil {
|
||||
t.Logger.Panic("unexpected removal of unknown remote peer", zap.String("remote-peer-id", id.String()))
|
||||
}
|
||||
delete(t.peers, id)
|
||||
delete(t.LeaderStats.Followers, id.String())
|
||||
t.pipelineProber.Remove(id.String())
|
||||
t.streamProber.Remove(id.String())
|
||||
}
|
||||
delete(t.peers, id)
|
||||
delete(t.LeaderStats.Followers, id.String())
|
||||
t.pipelineProber.Remove(id.String())
|
||||
t.streamProber.Remove(id.String())
|
||||
|
||||
if t.Logger != nil {
|
||||
t.Logger.Info(
|
||||
"removed remote peer",
|
||||
zap.String("local-member-id", t.ID.String()),
|
||||
zap.String("removed-remote-peer-id", id.String()),
|
||||
)
|
||||
if ok {
|
||||
t.Logger.Info(
|
||||
"removed remote peer",
|
||||
zap.String("local-member-id", t.ID.String()),
|
||||
zap.String("removed-remote-peer-id", id.String()),
|
||||
)
|
||||
} else {
|
||||
t.Logger.Warn(
|
||||
"skipped removing already removed peer",
|
||||
zap.String("local-member-id", t.ID.String()),
|
||||
zap.String("removed-remote-peer-id", id.String()),
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user