From fd3f2e175fa6ddb606d2c681ff86a97faccfebbd Mon Sep 17 00:00:00 2001 From: Alexandr Morozov Date: Mon, 22 Sep 2014 10:54:58 +0400 Subject: [PATCH 1/2] Change unused WriteCloser to Writer Signed-off-by: Alexandr Morozov --- pkg/jsonlog/jsonlog.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/jsonlog/jsonlog.go b/pkg/jsonlog/jsonlog.go index ecf4457cf9..ce9c1bb767 100644 --- a/pkg/jsonlog/jsonlog.go +++ b/pkg/jsonlog/jsonlog.go @@ -25,7 +25,7 @@ func (jl *JSONLog) Format(format string) (string, error) { return fmt.Sprintf("[%s] %s", jl.Created.Format(format), jl.Log), nil } -func WriteLog(src io.Reader, dst io.WriteCloser, format string) error { +func WriteLog(src io.Reader, dst io.Writer, format string) error { dec := json.NewDecoder(src) for { l := &JSONLog{} From a7ee201ee85c95afb8556323d79e32cf9e2d8737 Mon Sep 17 00:00:00 2001 From: Alexandr Morozov Date: Mon, 22 Sep 2014 10:55:46 +0400 Subject: [PATCH 2/2] Close logs pipes and catch write errors Signed-off-by: Alexandr Morozov --- daemon/logs.go | 2 ++ pkg/jsonlog/jsonlog.go | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) 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 + } } }