diff --git a/embed/etcd.go b/embed/etcd.go index 4d23a04009c3..22232314b3ce 100644 --- a/embed/etcd.go +++ b/embed/etcd.go @@ -127,6 +127,11 @@ func StartEtcd(inCfg *Config) (e *Etcd, err error) { } if e.Server, err = etcdserver.NewServer(srvcfg); err != nil { + // errored before starting gRPC server and + // sending to e.sctxs[~].serveCtx.grpcServerC + for _, sctx := range e.sctxs { + close(sctx.grpcServerC) + } return }