From 2d09e94f873e15da14a6938cff28dab959751de3 Mon Sep 17 00:00:00 2001 From: James Hillyerd Date: Sun, 25 Mar 2018 16:08:34 -0700 Subject: [PATCH] log: Fix another deadlock. --- pkg/log/stdout_unix.go | 11 ++++++----- pkg/log/stdout_windows.go | 6 +++--- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/pkg/log/stdout_unix.go b/pkg/log/stdout_unix.go index 1197844..0908102 100644 --- a/pkg/log/stdout_unix.go +++ b/pkg/log/stdout_unix.go @@ -3,8 +3,10 @@ package log import ( - "golang.org/x/sys/unix" + "log" "os" + + "golang.org/x/sys/unix" ) // closeStdin will close stdin on Unix platforms - this is standard practice @@ -12,20 +14,19 @@ import ( func closeStdin() { if err := os.Stdin.Close(); err != nil { // Not a fatal error - Errorf("Failed to close os.Stdin during log setup") + log.Printf("Failed to close os.Stdin during log setup") } } // reassignStdout points stdout/stderr to our logfile on systems that support // the Dup2 syscall per https://github.com/golang/go/issues/325 func reassignStdout() { - Tracef("Unix reassignStdout()") if err := unix.Dup2(int(logf.Fd()), 1); err != nil { // Not considered fatal - Errorf("Failed to re-assign stdout to logfile: %v", err) + log.Printf("Failed to re-assign stdout to logfile: %v", err) } if err := unix.Dup2(int(logf.Fd()), 2); err != nil { // Not considered fatal - Errorf("Failed to re-assign stderr to logfile: %v", err) + log.Printf("Failed to re-assign stderr to logfile: %v", err) } } diff --git a/pkg/log/stdout_windows.go b/pkg/log/stdout_windows.go index ad8d829..f883d24 100644 --- a/pkg/log/stdout_windows.go +++ b/pkg/log/stdout_windows.go @@ -3,6 +3,7 @@ package log import ( + "log" "os" ) @@ -16,7 +17,6 @@ func closeStdin() { // reassignStdout points stdout/stderr to our logfile on systems that do not // support the Dup2 syscall func reassignStdout() { - Tracef("Windows reassignStdout()") if !stdOutsClosed { // Close std* streams to prevent accidental output, they will be redirected to // our logfile below @@ -24,11 +24,11 @@ func reassignStdout() { // Warning: this will hide panic() output, sorry Windows users if err := os.Stderr.Close(); err != nil { // Not considered fatal - Errorf("Failed to close os.Stderr during log setup") + log.Printf("Failed to close os.Stderr during log setup") } if err := os.Stdin.Close(); err != nil { // Not considered fatal - Errorf("Failed to close os.Stdin during log setup") + log.Printf("Failed to close os.Stdin during log setup") } os.Stdout = logf os.Stderr = logf