diff --git a/fix_json_econnreset_bug.patch b/fix_json_econnreset_bug.patch deleted file mode 100644 index a54fc11..0000000 --- a/fix_json_econnreset_bug.patch +++ /dev/null @@ -1,136 +0,0 @@ -commit 7b5896702bd2951541af27925620172edb5d3505 -Author: Michael Crosby -Date: Tue Jan 26 15:00:07 2016 -0800 - - Update libcontainer to 3d8a20bb772defc28c355534d83 - - Fixes #14203 - - This bump fixes the issue of having the container's pipes connection - reset by peer because of using the json.Encoder and having a \n added to - the output. - - Signed-off-by: Michael Crosby - -Index: docker-1.9.1/hack/vendor.sh -=================================================================== ---- docker-1.9.1.orig/hack/vendor.sh -+++ docker-1.9.1/hack/vendor.sh -@@ -48,7 +48,7 @@ clone git github.com/agl/ed25519 d2b94fd - - # this runc commit from branch relabel_fix_docker_1.9.1, pls remove it when you - # update next time --clone git github.com/opencontainers/runc 1349b37bd56f4f5ce2690b5b2c0f53f88a261c67 # libcontainer -+clone git github.com/opencontainers/runc 3d8a20bb772defc28c355534d83486416d1719b4 # libcontainer - # libcontainer deps (see src/github.com/opencontainers/runc/Godeps/Godeps.json) - clone git github.com/coreos/go-systemd v3 - clone git github.com/godbus/dbus v2 -Index: docker-1.9.1/vendor/src/github.com/opencontainers/runc/libcontainer/container_linux.go -=================================================================== ---- docker-1.9.1.orig/vendor/src/github.com/opencontainers/runc/libcontainer/container_linux.go -+++ docker-1.9.1/vendor/src/github.com/opencontainers/runc/libcontainer/container_linux.go -@@ -18,6 +18,7 @@ import ( - "github.com/opencontainers/runc/libcontainer/cgroups" - "github.com/opencontainers/runc/libcontainer/configs" - "github.com/opencontainers/runc/libcontainer/criurpc" -+ "github.com/opencontainers/runc/libcontainer/utils" - ) - - const stdioFdCount = 3 -@@ -863,7 +864,7 @@ func (c *linuxContainer) updateState(pro - } - defer f.Close() - os.Remove(filepath.Join(c.root, "checkpoint")) -- return json.NewEncoder(f).Encode(state) -+ return utils.WriteJSON(f, state) - } - - func (c *linuxContainer) currentStatus() (Status, error) { -Index: docker-1.9.1/vendor/src/github.com/opencontainers/runc/libcontainer/factory_linux.go -=================================================================== ---- docker-1.9.1.orig/vendor/src/github.com/opencontainers/runc/libcontainer/factory_linux.go -+++ docker-1.9.1/vendor/src/github.com/opencontainers/runc/libcontainer/factory_linux.go -@@ -5,7 +5,6 @@ package libcontainer - import ( - "encoding/json" - "fmt" -- "io/ioutil" - "os" - "os/exec" - "path/filepath" -@@ -19,6 +18,7 @@ import ( - "github.com/opencontainers/runc/libcontainer/cgroups/systemd" - "github.com/opencontainers/runc/libcontainer/configs" - "github.com/opencontainers/runc/libcontainer/configs/validate" -+ "github.com/opencontainers/runc/libcontainer/utils" - ) - - const ( -@@ -225,10 +225,7 @@ func (l *LinuxFactory) StartInitializati - // if we have an error during the initialization of the container's init then send it back to the - // parent process in the form of an initError. - if err != nil { -- // ensure that any data sent from the parent is consumed so it doesn't -- // receive ECONNRESET when the child writes to the pipe. -- ioutil.ReadAll(pipe) -- if err := json.NewEncoder(pipe).Encode(newSystemError(err)); err != nil { -+ if err := utils.WriteJSON(pipe, newSystemError(err)); err != nil { - panic(err) - } - } -Index: docker-1.9.1/vendor/src/github.com/opencontainers/runc/libcontainer/process_linux.go -=================================================================== ---- docker-1.9.1.orig/vendor/src/github.com/opencontainers/runc/libcontainer/process_linux.go -+++ docker-1.9.1/vendor/src/github.com/opencontainers/runc/libcontainer/process_linux.go -@@ -15,6 +15,7 @@ import ( - "github.com/opencontainers/runc/libcontainer/cgroups" - "github.com/opencontainers/runc/libcontainer/configs" - "github.com/opencontainers/runc/libcontainer/system" -+ "github.com/opencontainers/runc/libcontainer/utils" - ) - - type parentProcess interface { -@@ -71,7 +72,7 @@ func (p *setnsProcess) start() (err erro - return newSystemError(err) - } - } -- if err := json.NewEncoder(p.parentPipe).Encode(p.config); err != nil { -+ if err := utils.WriteJSON(p.parentPipe, p.config); err != nil { - return newSystemError(err) - } - if err := syscall.Shutdown(int(p.parentPipe.Fd()), syscall.SHUT_WR); err != nil { -@@ -262,7 +263,7 @@ func (p *initProcess) startTime() (strin - - func (p *initProcess) sendConfig() error { - // send the state to the container's init process then shutdown writes for the parent -- if err := json.NewEncoder(p.parentPipe).Encode(p.config); err != nil { -+ if err := utils.WriteJSON(p.parentPipe, p.config); err != nil { - return err - } - // shutdown writes for the parent side of the pipe -Index: docker-1.9.1/vendor/src/github.com/opencontainers/runc/libcontainer/utils/utils.go -=================================================================== ---- docker-1.9.1.orig/vendor/src/github.com/opencontainers/runc/libcontainer/utils/utils.go -+++ docker-1.9.1/vendor/src/github.com/opencontainers/runc/libcontainer/utils/utils.go -@@ -3,6 +3,7 @@ package utils - import ( - "crypto/rand" - "encoding/hex" -+ "encoding/json" - "io" - "path/filepath" - "syscall" -@@ -43,3 +44,13 @@ func ExitStatus(status syscall.WaitStatu - } - return status.ExitStatus() - } -+ -+// WriteJSON writes the provided struct v to w using standard json marshaling -+func WriteJSON(w io.Writer, v interface{}) error { -+ data, err := json.Marshal(v) -+ if err != nil { -+ return err -+ } -+ _, err = w.Write(data) -+ return err -+}