Merge pull request #4546 from cpuguy83/consume_shim_log

Always consume shim logs
This commit is contained in:
Derek McGowan 2020-09-11 14:37:05 -07:00 committed by GitHub
commit 9efd738181
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -22,6 +22,7 @@ import (
"context" "context"
"fmt" "fmt"
"io" "io"
"io/ioutil"
"net" "net"
"os" "os"
"os/exec" "os/exec"
@ -67,23 +68,25 @@ func WithStart(binary, address, daemonAddress, cgroup string, debug bool, exitHa
} }
defer f.Close() defer f.Close()
var stdoutLog io.ReadWriteCloser stdoutCopy := ioutil.Discard
var stderrLog io.ReadWriteCloser stderrCopy := ioutil.Discard
if debug { stdoutLog, err := v1.OpenShimStdoutLog(ctx, config.WorkDir)
stdoutLog, err = v1.OpenShimStdoutLog(ctx, config.WorkDir)
if err != nil { if err != nil {
return nil, nil, errors.Wrapf(err, "failed to create stdout log") return nil, nil, errors.Wrapf(err, "failed to create stdout log")
} }
stderrLog, err = v1.OpenShimStderrLog(ctx, config.WorkDir) stderrLog, err := v1.OpenShimStderrLog(ctx, config.WorkDir)
if err != nil { if err != nil {
return nil, nil, errors.Wrapf(err, "failed to create stderr log") return nil, nil, errors.Wrapf(err, "failed to create stderr log")
} }
if debug {
go io.Copy(os.Stdout, stdoutLog) stdoutCopy = os.Stdout
go io.Copy(os.Stderr, stderrLog) stderrCopy = os.Stderr
} }
go io.Copy(stdoutCopy, stdoutLog)
go io.Copy(stderrCopy, stderrLog)
cmd, err := newCommand(binary, daemonAddress, debug, config, f, stdoutLog, stderrLog) cmd, err := newCommand(binary, daemonAddress, debug, config, f, stdoutLog, stderrLog)
if err != nil { if err != nil {
return nil, nil, err return nil, nil, err