diff --git a/test/integration/framework/etcd.go b/test/integration/framework/etcd.go index a7a502da4ca..25e2fbbfe11 100644 --- a/test/integration/framework/etcd.go +++ b/test/integration/framework/etcd.go @@ -25,6 +25,7 @@ import ( "os" "os/exec" "strings" + "sync" "syscall" "testing" "time" @@ -83,6 +84,8 @@ func startEtcd(output io.Writer) (func(), error) { return stop, nil } +var initGRPCOnce sync.Once + // RunCustomEtcd starts a custom etcd instance for test purposes. func RunCustomEtcd(dataDir string, customFlags []string, output io.Writer) (url string, stopFn func(), err error) { // TODO: Check for valid etcd version. @@ -150,7 +153,9 @@ func RunCustomEtcd(dataDir string, customFlags []string, output io.Writer) (url // Quiet etcd logs for integration tests // Comment out to get verbose logs if desired - grpclog.SetLoggerV2(grpclog.NewLoggerV2(io.Discard, io.Discard, os.Stderr)) + initGRPCOnce.Do(func() { + grpclog.SetLoggerV2(grpclog.NewLoggerV2(io.Discard, io.Discard, os.Stderr)) + }) if err := cmd.Start(); err != nil { return "", nil, fmt.Errorf("failed to run etcd: %v", err)