From 91335d01bb72f9e01cda0aaa9f6c2bafec8b5a7a Mon Sep 17 00:00:00 2001 From: Gyu-Ho Lee Date: Thu, 16 Nov 2017 09:17:17 -0800 Subject: [PATCH] proxy/grpcproxy: wait until register before Serve It was fatal-ing with: grpclog.Fatalf("grpc: Server.RegisterService after Server.Serve for %q", sd.ServiceName) Signed-off-by: Gyu-Ho Lee --- proxy/grpcproxy/cluster_test.go | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/proxy/grpcproxy/cluster_test.go b/proxy/grpcproxy/cluster_test.go index 031a95684db..e36234c195c 100644 --- a/proxy/grpcproxy/cluster_test.go +++ b/proxy/grpcproxy/cluster_test.go @@ -107,15 +107,20 @@ func newClusterProxyServer(endpoints []string, t *testing.T) *clusterproxyTestSe } var opts []grpc.ServerOption cts.server = grpc.NewServer(opts...) - go cts.server.Serve(cts.l) - - // wait some time for free port 0 to be resolved - time.Sleep(500 * time.Millisecond) + servec := make(chan struct{}) + go func() { + <-servec + cts.server.Serve(cts.l) + }() Register(client, "test-prefix", cts.l.Addr().String(), 7) cts.cp, cts.donec = NewClusterProxy(client, cts.l.Addr().String(), "test-prefix") cts.caddr = cts.l.Addr().String() pb.RegisterClusterServer(cts.server, cts.cp) + close(servec) + + // wait some time for free port 0 to be resolved + time.Sleep(500 * time.Millisecond) return cts }