From f3fe71d838d2b4d15d3502414465f97f9391ff49 Mon Sep 17 00:00:00 2001 From: Gyuho Lee Date: Fri, 8 Dec 2017 09:02:36 -0800 Subject: [PATCH] embed: stop *grpc.Server on *serveCtx serve error If serve errors before *grpc.Server is sent to serversC, it should be closed manually. Signed-off-by: Gyuho Lee --- embed/serve.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/embed/serve.go b/embed/serve.go index 2811aaf06417..eda162eabc27 100644 --- a/embed/serve.go +++ b/embed/serve.go @@ -101,6 +101,7 @@ func (sctx *serveCtx) serve( opts := []grpc.DialOption{grpc.WithInsecure()} gwmux, err := sctx.registerGateway(opts) if err != nil { + gs.Stop() return err } @@ -137,11 +138,13 @@ func (sctx *serveCtx) serve( opts := []grpc.DialOption{grpc.WithTransportCredentials(creds)} gwmux, err := sctx.registerGateway(opts) if err != nil { + gs.Stop() return err } tlsl, lerr := transport.NewTLSListener(m.Match(cmux.Any()), tlsinfo) if lerr != nil { + gs.Stop() return lerr } // TODO: add debug flag; enable logging when debug flag is set