From 687a71e998f596d7caf63b9c430f78d7a2c6c4d6 Mon Sep 17 00:00:00 2001 From: Victor Vieux Date: Wed, 28 May 2014 00:17:11 +0000 Subject: [PATCH] update container's state after we close the waitLock Docker-DCO-1.1-Signed-off-by: Victor Vieux (github: vieux) Upstream-commit: 1de52caedca11c083e92039e2ecd8671944dfc47 Component: engine --- components/engine/daemon/container.go | 28 +++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/components/engine/daemon/container.go b/components/engine/daemon/container.go index 647f4c187d..9d396c2812 100644 --- a/components/engine/daemon/container.go +++ b/components/engine/daemon/container.go @@ -468,6 +468,20 @@ func (container *Container) monitor(callback execdriver.StartCallback) error { utils.Errorf("Error running container: %s", err) } + // Cleanup + container.cleanup() + + // Re-create a brand new stdin pipe once the container exited + if container.Config.OpenStdin { + container.stdin, container.stdinPipe = io.Pipe() + } + + if container.daemon != nil && container.daemon.srv != nil { + container.daemon.srv.LogEvent("die", container.ID, container.daemon.repositories.ImageName(container.Image)) + } + + close(container.waitLock) + if container.daemon != nil && container.daemon.srv != nil && container.daemon.srv.IsRunning() { container.State.SetStopped(exitCode) @@ -483,20 +497,6 @@ func (container *Container) monitor(callback execdriver.StartCallback) error { } } - // Cleanup - container.cleanup() - - // Re-create a brand new stdin pipe once the container exited - if container.Config.OpenStdin { - container.stdin, container.stdinPipe = io.Pipe() - } - - if container.daemon != nil && container.daemon.srv != nil { - container.daemon.srv.LogEvent("die", container.ID, container.daemon.repositories.ImageName(container.Image)) - } - - close(container.waitLock) - return err }