From 6df212b831dcc3350b7677423ec7835ed40b3f22 Mon Sep 17 00:00:00 2001 From: Fabricio Voznika Date: Wed, 27 Feb 2019 10:05:46 -0800 Subject: Don't log twice to debug log when --log isn't set PiperOrigin-RevId: 235940853 Change-Id: I9c5b4cf18b199fb74044a5edb131bfff59dec945 --- runsc/main.go | 8 +++++++- test/syscalls/syscall_test_runner.go | 5 +++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/runsc/main.go b/runsc/main.go index 472839bf0..4f89312b3 100644 --- a/runsc/main.go +++ b/runsc/main.go @@ -192,7 +192,13 @@ func main() { cmd.Fatalf("error dup'ing fd %d to stderr: %v", f.Fd(), err) } - e = log.MultiEmitter{e, newEmitter(*debugLogFormat, f)} + if logFile == os.Stderr { + // Suppress logging to stderr when debug log is enabled. Otherwise all + // messages will be duplicated in the debug log (see Dup2() call above). + e = newEmitter(*debugLogFormat, f) + } else { + e = log.MultiEmitter{e, newEmitter(*debugLogFormat, f)} + } } else if *debugLog != "" { f, err := specutils.DebugLogFile(*debugLog, subcommand) if err != nil { diff --git a/test/syscalls/syscall_test_runner.go b/test/syscalls/syscall_test_runner.go index 9fe801b26..c4af28103 100644 --- a/test/syscalls/syscall_test_runner.go +++ b/test/syscalls/syscall_test_runner.go @@ -202,6 +202,11 @@ func runTestCaseRunsc(testBin string, tc gtest.TestCase, t *testing.T) { debugLogDir += "/" log.Infof("runsc logs: %s", debugLogDir) args = append(args, "-debug-log", debugLogDir) + + // Default -log sends messages to stderr which makes reading the test log + // difficult. Instead, drop them when debug log is enabled given it's a + // better place for these messages. + args = append(args, "-log=/dev/null") } // Current process doesn't have CAP_SYS_ADMIN, create user namespace and run -- cgit v1.2.3