diff --git a/daemon/logs.go b/daemon/logs.go index b5cf86fcb6..6925cabacb 100644 --- a/daemon/logs.go +++ b/daemon/logs.go @@ -114,12 +114,14 @@ func (daemon *Daemon) ContainerLogs(job *engine.Job) engine.Status { errors := make(chan error, 2) if stdout { stdoutPipe := container.StdoutLogPipe() + defer stdoutPipe.Close() go func() { errors <- jsonlog.WriteLog(stdoutPipe, job.Stdout, format) }() } if stderr { stderrPipe := container.StderrLogPipe() + defer stderrPipe.Close() go func() { errors <- jsonlog.WriteLog(stderrPipe, job.Stderr, format) }() diff --git a/pkg/jsonlog/jsonlog.go b/pkg/jsonlog/jsonlog.go index ce9c1bb767..16d015fcd1 100644 --- a/pkg/jsonlog/jsonlog.go +++ b/pkg/jsonlog/jsonlog.go @@ -40,6 +40,8 @@ func WriteLog(src io.Reader, dst io.Writer, format string) error { if err != nil { return err } - fmt.Fprintf(dst, "%s", line) + if _, err := io.WriteString(dst, line); err != nil { + return err + } } }