diff --git a/etcdserver/server.go b/etcdserver/server.go index d9731dbcc216..551636d72976 100644 --- a/etcdserver/server.go +++ b/etcdserver/server.go @@ -272,6 +272,10 @@ func NewServer(cfg *ServerConfig) (*EtcdServer, error) { var err error str, err = discovery.JoinCluster(cfg.DiscoveryURL, cfg.DiscoveryProxy, m.ID, cfg.InitialPeerURLsMap.String()) if err != nil { + // It removes member directory when NewServer returns error. + // This prevents conflicts with 'proxy' directory when + // the node falls back to proxy. + os.RemoveAll(cfg.MemberDir()) return nil, &DiscoveryError{Op: "join", Err: err} } urlsmap, err := types.NewURLsMap(str)