Просмотр исходного кода

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 <gyuhox@gmail.com>
Gyu-Ho Lee 9 лет назад
Родитель
Сommit
ba299bcaaf
1 измененных файлов с 1 добавлено и 2 удалено
  1. 1 2
      embed/serve.go

+ 1 - 2
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()
 }