diff options
Diffstat (limited to 'weed/server/raft_server.go')
| -rw-r--r-- | weed/server/raft_server.go | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/weed/server/raft_server.go b/weed/server/raft_server.go index 7045437e8..66a6734e3 100644 --- a/weed/server/raft_server.go +++ b/weed/server/raft_server.go @@ -104,7 +104,24 @@ func NewRaftServer(grpcDialOption grpc.DialOption, peers []string, serverAddr, d if err := s.raftServer.AddPeer(peer, pb.ServerToGrpcAddress(peer)); err != nil { return nil, err } + } + // Remove deleted peers + if raftResumeState { + for existsPeerName, _ := range s.raftServer.Peers() { + exists := false + for _, peer := range s.peers { + if peer == existsPeerName { + exists = true + } + } + if !exists { + if err := s.raftServer.RemovePeer(existsPeerName); err != nil { + glog.V(0).Infoln(err) + return nil, err + } + } + } } s.GrpcServer = raft.NewGrpcServer(s.raftServer) |
