diff --git a/embed/etcd.go b/embed/etcd.go index 25323cabe5d8..b1ea3ab05e0b 100644 --- a/embed/etcd.go +++ b/embed/etcd.go @@ -123,7 +123,10 @@ func StartEtcd(inCfg *Config) (e *Etcd, err error) { urlsmap types.URLsMap token string ) + needCorruptCheck := true if !isMemberInitialized(cfg) { + // newly started member does not need corruption check + needCorruptCheck = false urlsmap, token, err = cfg.PeerURLsMapAndToken("etcd") if err != nil { return e, fmt.Errorf("error setting up initial cluster: %v", err) @@ -185,8 +188,10 @@ func StartEtcd(inCfg *Config) (e *Etcd, err error) { // buffer channel so goroutines on closed connections won't wait forever e.errc = make(chan error, len(e.Peers)+len(e.Clients)+2*len(e.sctxs)) - if err = e.Server.CheckInitialHashKV(); err != nil { - return e, err + if needCorruptCheck { + if err = e.Server.CheckInitialHashKV(); err != nil { + return e, err + } } e.Server.Start()