moby--moby/daemon
Zhang Wei 7ae170ddab Fix critical bug: can't restart a restarting container
When user try to restart a restarting container, docker client report
error: "container is already active", and container will be stopped
instead be restarted which is seriously wrong.

What's more critical is that when user try to start this container
again, it will always fail.

This error can also be reproduced with a `docker stop`+`docker start`.

And this commit will fix the bug.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
(cherry picked from commit a705e166cf)
2016-04-11 11:19:58 -04:00
..
caps Replace execdrivers with containerd implementation 2016-03-18 13:38:32 -07:00
events Compare event nanoseconds properly to filter since a specific date. 2016-03-08 17:07:58 -05:00
exec Replace execdrivers with containerd implementation 2016-03-18 13:38:32 -07:00
graphdriver Fix compilation errors with btrfs-progs-4.5 2016-04-06 18:16:33 -04:00
links Replace usage of pkg/nat with go-connections/nat. 2015-12-22 13:31:46 -05:00
logger Open the journald following descriptor earlier 2016-03-31 18:35:37 -04:00
network Modify import paths to point to the new engine-api package. 2016-01-06 19:48:59 -05:00
apparmor_default.go Replace execdrivers with containerd implementation 2016-03-18 13:38:32 -07:00
apparmor_default_unsupported.go Replace execdrivers with containerd implementation 2016-03-18 13:38:32 -07:00
archive.go Fix copy chown settings to not default to real root 2016-02-18 14:44:13 -08:00
archive_unix.go Remove package daemonbuilder. 2016-02-01 09:57:38 -08:00
archive_windows.go Remove package daemonbuilder. 2016-02-01 09:57:38 -08:00
attach.go Remove static errors from errors package. 2016-02-26 15:49:09 -05:00
changes.go Rename `Daemon.Get` to `Daemon.GetContainer`. 2015-12-11 12:39:28 -05:00
commit.go Move layer mount refcounts to mountedLayer 2016-03-25 13:43:06 -04:00
config.go Remove unneeded references to execDriver 2016-03-21 13:06:08 -07:00
config_experimental.go Move userns support out of experimental into master 2016-01-08 15:06:22 -05:00
config_stub.go Add user namespace enable flag `--userns-remap` in experimental build 2015-10-09 20:50:05 -04:00
config_test.go add validating configs from configuration file 2016-03-16 00:05:52 +08:00
config_unix.go Fixes #21538 2016-03-31 18:35:02 -04:00
config_windows.go Windows libcontainerd implementation 2016-03-18 13:38:41 -07:00
container_operations.go Fix container mount cleanup issues 2016-03-31 18:35:37 -04:00
container_operations_unix.go Fix setting cgroup permission to user/privileged devices 2016-03-25 13:43:07 -04:00
container_operations_windows.go Windows libcontainerd implementation 2016-03-18 13:38:41 -07:00
create.go add label support for build, networks and volumes 2016-03-22 11:49:06 -04:00
create_unix.go Merge pull request #21270 from ehazlett/resource-labels 2016-03-22 15:12:33 -04:00
create_windows.go add label support for build, networks and volumes 2016-03-22 11:49:06 -04:00
daemon.go Fix container mount cleanup issues 2016-03-31 18:35:37 -04:00
daemon_experimental.go Move userns support out of experimental into master 2016-01-08 15:06:22 -05:00
daemon_linux.go Fix container mount cleanup issues 2016-03-31 18:35:37 -04:00
daemon_linux_test.go Fix container mount cleanup issues 2016-03-31 18:35:37 -04:00
daemon_stub.go Move userns support out of experimental into master 2016-01-08 15:06:22 -05:00
daemon_test.go add label support for build, networks and volumes 2016-03-22 11:49:06 -04:00
daemon_unix.go Fix docker stats missing memory limit 2016-04-11 11:19:41 -04:00
daemon_unix_test.go Consolidate security options to use `=` as separator. 2016-03-17 13:34:42 -04:00
daemon_unsupported.go
daemon_windows.go Expose RootFS in image inspect 2016-03-22 13:49:30 -07:00
debugtrap_unix.go
debugtrap_unsupported.go
debugtrap_windows.go Fix typos found across repository 2015-12-13 18:04:12 +02:00
delete.go when container had no layer data, cleanupContainer crashed 2016-04-06 18:16:33 -04:00
delete_test.go Remove static errors from errors package. 2016-02-26 15:49:09 -05:00
discovery.go fix typos 2016-03-11 23:22:16 +08:00
discovery_test.go Fix minor vet warnings 2016-02-03 10:43:01 -08:00
errors.go Remove static errors from errors package. 2016-02-26 15:49:09 -05:00
events.go Add the possibility to log event with specific attributes 2016-01-17 12:14:01 +01:00
events_test.go Add the possibility to log event with specific attributes 2016-01-17 12:14:01 +01:00
exec.go Replace execdrivers with containerd implementation 2016-03-18 13:38:32 -07:00
exec_linux.go Replace execdrivers with containerd implementation 2016-03-18 13:38:32 -07:00
exec_windows.go Windows libcontainerd implementation 2016-03-18 13:38:41 -07:00
export.go Remove static errors from errors package. 2016-02-26 15:49:09 -05:00
image_delete.go Remove static errors from errors package. 2016-02-26 15:49:09 -05:00
images.go Fix image filter 2016-01-14 08:17:40 +00:00
import.go Fix docker import on compressed data 2016-02-16 11:19:23 -08:00
info.go Replace execdrivers with containerd implementation 2016-03-18 13:38:32 -07:00
inspect.go fix typos in several files 2016-03-18 12:51:57 +08:00
inspect_unix.go Replace execdrivers with containerd implementation 2016-03-18 13:38:32 -07:00
inspect_windows.go Windows libcontainerd implementation 2016-03-18 13:38:41 -07:00
kill.go Fix critical bug: can't restart a restarting container 2016-04-11 11:19:58 -04:00
links.go Add migration from sqlite links back to hostConfig 2016-01-11 11:31:29 -05:00
links_test.go Extract container store from the daemon. 2016-01-19 13:21:41 -05:00
list.go Merge pull request #21269 from mlaventure/inspect-bind-mounts 2016-03-18 20:52:02 +01:00
list_unix.go Move Container to its own package. 2015-12-03 17:39:49 +01:00
list_windows.go Move Container to its own package. 2015-12-03 17:39:49 +01:00
logdrivers_linux.go daemon/logger: Add logging driver for Google Cloud Logging 2016-03-01 08:06:10 -08:00
logdrivers_windows.go Windows: Add ETW logging driver plug-in 2016-02-16 13:24:49 -08:00
logs.go Fixing logs file handle leak. 2016-03-18 11:00:15 -07:00
monitor.go Add missing "start" event back for auto-restart container 2016-04-11 11:19:41 -04:00
monitor_linux.go Replace execdrivers with containerd implementation 2016-03-18 13:38:32 -07:00
monitor_windows.go Windows libcontainerd implementation 2016-03-18 13:38:41 -07:00
mounts.go Remove static errors from errors package. 2016-02-26 15:49:09 -05:00
network.go add label support for build, networks and volumes 2016-03-22 11:49:06 -04:00
oci_linux.go Define readonly/mask paths in spec 2016-04-06 18:15:37 -04:00
oci_windows.go Windows: Tidy after libcontainerd 2016-03-20 15:59:52 -07:00
pause.go Replace execdrivers with containerd implementation 2016-03-18 13:38:32 -07:00
rename.go Remove static errors from errors package. 2016-02-26 15:49:09 -05:00
resize.go Replace execdrivers with containerd implementation 2016-03-18 13:38:32 -07:00
restart.go Remove static errors from errors package. 2016-02-26 15:49:09 -05:00
seccomp_disabled.go Replace execdrivers with containerd implementation 2016-03-18 13:38:32 -07:00
seccomp_linux.go Reuse profiles/seccomp package 2016-03-19 14:15:39 -07:00
selinux_linux.go Rename daemon/utils_*.go to selinux 2015-11-12 15:48:41 -08:00
selinux_unsupported.go Rename daemon/utils_*.go to selinux 2015-11-12 15:48:41 -08:00
start.go Add missing "start" event back for auto-restart container 2016-04-11 11:19:41 -04:00
stats.go Replace execdrivers with containerd implementation 2016-03-18 13:38:32 -07:00
stats_collector_unix.go Fix docker stats missing memory limit 2016-04-11 11:19:41 -04:00
stats_collector_windows.go Move Container to its own package. 2015-12-03 17:39:49 +01:00
stop.go Remove static errors from errors package. 2016-02-26 15:49:09 -05:00
top_unix.go Replace execdrivers with containerd implementation 2016-03-18 13:38:32 -07:00
top_windows.go Windows: Minimal docker top implementation 2016-03-20 16:45:53 -07:00
unpause.go Replace execdrivers with containerd implementation 2016-03-18 13:38:32 -07:00
update.go Replace execdrivers with containerd implementation 2016-03-18 13:38:32 -07:00
update_linux.go Replace execdrivers with containerd implementation 2016-03-18 13:38:32 -07:00
update_windows.go Windows libcontainerd implementation 2016-03-18 13:38:41 -07:00
volumes.go Merge pull request #21270 from ehazlett/resource-labels 2016-03-22 15:12:33 -04:00
volumes_unit_test.go reorder imports with goimports 2015-12-16 16:50:25 +01:00
volumes_unix.go Replace execdrivers with containerd implementation 2016-03-18 13:38:32 -07:00
volumes_windows.go Remove unneeded references to execDriver 2016-03-21 13:06:08 -07:00
wait.go Rename `Daemon.Get` to `Daemon.GetContainer`. 2015-12-11 12:39:28 -05:00