From 16f6e0944a20aa97bd30b91f567ce08147b6350d Mon Sep 17 00:00:00 2001 From: Kenfe-Mickael Laventure Date: Fri, 4 Aug 2017 09:45:09 -0700 Subject: [PATCH] Do not touch grpc logger from within the packages Libraries should not make process wide changes unless requested to. Signed-off-by: Kenfe-Mickael Laventure --- client.go | 6 ------ client_test.go | 7 +++++++ cmd/containerd/main.go | 7 +++++++ cmd/ctr/main.go | 6 ++++++ cmd/ctr/shim.go | 4 ---- cmd/ctr/utils_unix.go | 5 ----- cmd/ctr/utils_windows.go | 5 ----- 7 files changed, 20 insertions(+), 20 deletions(-) diff --git a/client.go b/client.go index 2664abb88..56c966700 100644 --- a/client.go +++ b/client.go @@ -4,8 +4,6 @@ import ( "context" "fmt" "io" - "io/ioutil" - "log" "net/http" "runtime" "strconv" @@ -43,14 +41,10 @@ import ( specs "github.com/opencontainers/runtime-spec/specs-go" "github.com/pkg/errors" "google.golang.org/grpc" - "google.golang.org/grpc/grpclog" "google.golang.org/grpc/health/grpc_health_v1" ) func init() { - // reset the grpc logger so that it does not output in the STDIO of the calling process - grpclog.SetLogger(log.New(ioutil.Discard, "", log.LstdFlags)) - // register TypeUrls for commonly marshaled external types major := strconv.Itoa(specs.VersionMajor) typeurl.Register(&specs.Spec{}, "opencontainers/runtime-spec", major, "Spec") diff --git a/client_test.go b/client_test.go index 68cc75612..7c277e2d9 100644 --- a/client_test.go +++ b/client_test.go @@ -5,6 +5,8 @@ import ( "context" "flag" "fmt" + "io/ioutil" + golog "log" "os" "os/exec" "runtime" @@ -12,6 +14,8 @@ import ( "testing" "time" + "google.golang.org/grpc/grpclog" + "github.com/containerd/containerd/log" "github.com/containerd/containerd/namespaces" "github.com/containerd/containerd/testutil" @@ -26,6 +30,9 @@ var ( ) func init() { + // Discard grpc logs so that they don't mess with our stdio + grpclog.SetLogger(golog.New(ioutil.Discard, "", golog.LstdFlags)) + flag.StringVar(&address, "address", defaultAddress, "The address to the containerd socket for use in the tests") flag.BoolVar(&noDaemon, "no-daemon", false, "Do not start a dedicated daemon for the tests") flag.BoolVar(&noCriu, "no-criu", false, "Do not run the checkpoint tests") diff --git a/cmd/containerd/main.go b/cmd/containerd/main.go index d723731ea..dc724732a 100644 --- a/cmd/containerd/main.go +++ b/cmd/containerd/main.go @@ -3,12 +3,16 @@ package main import ( "context" "fmt" + "io/ioutil" + golog "log" "net" "os" "os/signal" "runtime" "time" + "google.golang.org/grpc/grpclog" + gocontext "golang.org/x/net/context" "github.com/containerd/containerd/log" @@ -31,6 +35,9 @@ high performance container runtime ` func init() { + // Discard grpc logs so that they don't mess with our stdio + grpclog.SetLogger(golog.New(ioutil.Discard, "", golog.LstdFlags)) + cli.VersionPrinter = func(c *cli.Context) { fmt.Println(c.App.Name, version.Package, c.App.Version) } diff --git a/cmd/ctr/main.go b/cmd/ctr/main.go index 0a3969393..717795a1d 100644 --- a/cmd/ctr/main.go +++ b/cmd/ctr/main.go @@ -2,6 +2,8 @@ package main import ( "fmt" + "io/ioutil" + "log" "os" "github.com/containerd/containerd/namespaces" @@ -9,11 +11,15 @@ import ( "github.com/containerd/containerd/version" "github.com/sirupsen/logrus" "github.com/urfave/cli" + "google.golang.org/grpc/grpclog" ) var extraCmds = []cli.Command{} func init() { + // Discard grpc logs so that they don't mess with our stdio + grpclog.SetLogger(log.New(ioutil.Discard, "", log.LstdFlags)) + cli.VersionPrinter = func(c *cli.Context) { fmt.Println(c.App.Name, version.Package, c.App.Version) } diff --git a/cmd/ctr/shim.go b/cmd/ctr/shim.go index 1b2e09bad..3fbbed179 100644 --- a/cmd/ctr/shim.go +++ b/cmd/ctr/shim.go @@ -7,7 +7,6 @@ import ( "encoding/json" "fmt" "io/ioutil" - "log" "net" "os" "time" @@ -15,7 +14,6 @@ import ( gocontext "context" "google.golang.org/grpc" - "google.golang.org/grpc/grpclog" "github.com/containerd/console" shim "github.com/containerd/containerd/linux/shim/v1" @@ -305,8 +303,6 @@ func getShimService(context *cli.Context) (shim.ShimClient, error) { return nil, errors.New("socket path must be specified") } - // reset the logger for grpc to log to dev/null so that it does not mess with our stdio - grpclog.SetLogger(log.New(ioutil.Discard, "", log.LstdFlags)) dialOpts := []grpc.DialOption{grpc.WithInsecure(), grpc.WithTimeout(100 * time.Second)} dialOpts = append(dialOpts, grpc.WithDialer(func(addr string, timeout time.Duration) (net.Conn, error) { diff --git a/cmd/ctr/utils_unix.go b/cmd/ctr/utils_unix.go index b7430af52..213fafdd5 100644 --- a/cmd/ctr/utils_unix.go +++ b/cmd/ctr/utils_unix.go @@ -6,8 +6,6 @@ import ( gocontext "context" "fmt" "io" - "io/ioutil" - "log" "net" "os" "sync" @@ -18,7 +16,6 @@ import ( "github.com/pkg/errors" "github.com/urfave/cli" "google.golang.org/grpc" - "google.golang.org/grpc/grpclog" ) func prepareStdio(stdin, stdout, stderr string, console bool) (wg *sync.WaitGroup, err error) { @@ -82,8 +79,6 @@ func getGRPCConnection(context *cli.Context) (*grpc.ClientConn, error) { } bindSocket := context.GlobalString("address") - // reset the logger for grpc to log to dev/null so that it does not mess with our stdio - grpclog.SetLogger(log.New(ioutil.Discard, "", log.LstdFlags)) dialOpts := []grpc.DialOption{grpc.WithInsecure(), grpc.WithTimeout(100 * time.Second)} dialOpts = append(dialOpts, grpc.WithDialer(func(addr string, timeout time.Duration) (net.Conn, error) { diff --git a/cmd/ctr/utils_windows.go b/cmd/ctr/utils_windows.go index cc1e3c55a..a883b7f8a 100644 --- a/cmd/ctr/utils_windows.go +++ b/cmd/ctr/utils_windows.go @@ -2,8 +2,6 @@ package main import ( "io" - "io/ioutil" - "log" "net" "os" "sync" @@ -16,7 +14,6 @@ import ( "github.com/urfave/cli" "golang.org/x/sys/windows" "google.golang.org/grpc" - "google.golang.org/grpc/grpclog" ) func getGRPCConnection(context *cli.Context) (*grpc.ClientConn, error) { @@ -25,8 +22,6 @@ func getGRPCConnection(context *cli.Context) (*grpc.ClientConn, error) { } bindAddress := context.GlobalString("address") - // reset the logger for grpc to log to dev/null so that it does not mess with our stdio - grpclog.SetLogger(log.New(ioutil.Discard, "", log.LstdFlags)) dialOpts := []grpc.DialOption{grpc.WithInsecure(), grpc.WithTimeout(100 * time.Second)} dialOpts = append(dialOpts, grpc.WithDialer(func(addr string, timeout time.Duration) (net.Conn, error) {