From 5548966c37147875fb5e07f4ba7f633dd882c782 Mon Sep 17 00:00:00 2001 From: Zhang Wei Date: Thu, 14 Apr 2016 22:37:35 +0800 Subject: [PATCH] Remove start/die event when fail to start container If contaner start fail of (say) "command not found", the container actually didn't start at all, we shouldn't log start and die event for it, because that doesnt actually happen. Signed-off-by: Zhang Wei --- daemon/start.go | 6 ------ integration-cli/docker_cli_events_test.go | 12 ++++++++++-- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/daemon/start.go b/daemon/start.go index 4862969471..483f61b506 100644 --- a/daemon/start.go +++ b/daemon/start.go @@ -107,10 +107,6 @@ func (daemon *Daemon) containerStart(container *container.Container) (err error) } container.ToDisk() daemon.Cleanup(container) - attributes := map[string]string{ - "exitCode": fmt.Sprintf("%d", container.ExitCode), - } - daemon.LogContainerEventWithAttributes(container, "die", attributes) } }() @@ -149,8 +145,6 @@ func (daemon *Daemon) containerStart(container *container.Container) (err error) container.Reset(false) - // start event is logged even on error - daemon.LogContainerEvent(container, "start") return err } diff --git a/integration-cli/docker_cli_events_test.go b/integration-cli/docker_cli_events_test.go index 8982151e81..e7e5ec5ae0 100644 --- a/integration-cli/docker_cli_events_test.go +++ b/integration-cli/docker_cli_events_test.go @@ -95,8 +95,16 @@ func (s *DockerSuite) TestEventsContainerFailStartDie(c *check.C) { dieEvent = true } } - c.Assert(startEvent, checker.True, check.Commentf("Start event not found: %v\n%v", actions, events)) - c.Assert(dieEvent, checker.True, check.Commentf("Die event not found: %v\n%v", actions, events)) + + // Windows platform is different from Linux, it will start container whatever + // so Windows can get start/die event but Linux can't + if daemonPlatform == "windows" { + c.Assert(startEvent, checker.True, check.Commentf("Start event not found: %v\n%v", actions, events)) + c.Assert(dieEvent, checker.True, check.Commentf("Die event not found: %v\n%v", actions, events)) + } else { + c.Assert(startEvent, checker.False, check.Commentf("Start event not expected: %v\n%v", actions, events)) + c.Assert(dieEvent, checker.False, check.Commentf("Die event not expected: %v\n%v", actions, events)) + } } func (s *DockerSuite) TestEventsLimit(c *check.C) {