From ba299bcaaf616944e3e4568399506d055a82ef1d Mon Sep 17 00:00:00 2001 From: Gyu-Ho Lee Date: Tue, 18 Apr 2017 17:46:51 -0700 Subject: [PATCH] embed: signal 'grpcServerC' before cmux serve CMux.Serve blocks, so grpcServerC was never closed. Fix https://github.com/coreos/etcdlabs/issues/216. Signed-off-by: Gyu-Ho Lee --- embed/serve.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/embed/serve.go b/embed/serve.go index 07d2159ce..450516dad 100644 --- a/embed/serve.go +++ b/embed/serve.go @@ -74,8 +74,6 @@ func (sctx *serveCtx) serve(s *etcdserver.EtcdServer, tlscfg *tls.Config, handle servElection := v3election.NewElectionServer(v3c) servLock := v3lock.NewLockServer(v3c) - defer close(sctx.grpcServerC) - if sctx.insecure { gs := v3rpc.Server(s, nil) sctx.grpcServerC <- gs @@ -140,6 +138,7 @@ func (sctx *serveCtx) serve(s *etcdserver.EtcdServer, tlscfg *tls.Config, handle plog.Infof("serving client requests on %s", sctx.l.Addr().String()) } + close(sctx.grpcServerC) return m.Serve() }