Always consume shim logs

These fifos fill up if unconsumed, so always consume them.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
This commit is contained in:
Brian Goff 2020-09-09 16:42:35 -07:00
parent d4e78200d6
commit dab7bd0c45

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