moby/daemon
Jana Radhakrishnan 769c25c416 Retry creating dynamic networks if not found
In cases there are failures in task start, swarmkit might be trying to
restart the task again in the same node which might keep failing. This
creates a race where when a failed task is getting removed it might
remove the associated network while another task for the same service
or a different service but connected to the same network is proceeding
with starting the container knowing that the network is still
present. Fix this by reacting to `ErrNoSuchNetwork` error during
container start by trying to recreate the managed networks. If they
have been removed it will be recreated. If they are already present
nothing bad will happen.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
(cherry picked from commit 117cef5e97)
Signed-off-by: Tibor Vass <tibor@docker.com>
2016-08-11 17:56:50 -07:00
..
caps Replace execdrivers with containerd implementation 2016-03-18 13:38:32 -07:00
cluster Retry creating dynamic networks if not found 2016-08-11 17:56:50 -07:00
events Make daemon events listen for plugin lifecycle events. 2016-08-11 17:56:43 -07:00
exec Replace execdrivers with containerd implementation 2016-03-18 13:38:32 -07:00
graphdriver Update diff apply test to check sub directories 2016-07-27 14:51:42 -07:00
links Replace usage of pkg/nat with go-connections/nat. 2015-12-22 13:31:46 -05:00
logger daemon/logger: fix races in channel close 2016-06-30 17:11:13 -07:00
network Add Swarm management backend 2016-06-13 22:16:18 -07: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 Windows: docker cp consistent paths 2016-05-06 16:08:53 -07:00
archive_unix.go Windows: docker cp consistent paths 2016-05-06 16:08:53 -07:00
archive_windows.go Windows: Remove TP4 support from main code 2016-04-06 12:12:20 -07:00
attach.go Merge pull request #22777 from WeiZhang555/wait-restarting 2016-06-12 13:01:20 +02:00
auth.go Moving some more methods away from daemon.go 2016-05-27 11:32:26 +02:00
changes.go Move some container related methods and structs to smaller files 2016-05-24 21:31:15 +02:00
commit.go Add support for user-defined healthchecks 2016-06-02 23:58:34 +02:00
config.go Split advertised address from listen address 2016-07-25 23:18:03 -07:00
config_experimental.go Move userns support out of experimental into master 2016-01-08 15:06:22 -05:00
config_solaris.go Daemon changes to pass exec-root to libnetwork 2016-07-25 23:18:14 -07: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 support for multiples runtimes 2016-06-14 07:47:31 -07:00
config_unix.go Daemon changes to pass exec-root to libnetwork 2016-07-25 23:18:14 -07:00
config_windows.go Daemon changes to pass exec-root to libnetwork 2016-07-25 23:18:14 -07:00
container.go Validate hostname starting from 1.24 API. 2016-07-08 15:32:19 -07:00
container_operations.go Fix regression on --link on bridge network 2016-07-25 23:17:08 -07:00
container_operations_solaris.go Get the Docker Engine to build clean on Solaris 2016-05-23 16:37:12 -07:00
container_operations_unix.go Add support for --pid=container:<id> 2016-05-17 13:49:05 -04:00
container_operations_windows.go Merge pull request #21809 from Microsoft/jjh/tp4removal 2016-04-06 14:11:33 -07:00
create.go Validate hostname starting from 1.24 API. 2016-07-08 15:32:19 -07:00
create_unix.go Merge pull request #21270 from ehazlett/resource-labels 2016-03-22 15:12:33 -04:00
create_windows.go Windows: Default isolation and workdir 2016-05-26 13:24:22 -07:00
daemon.go Make daemon events listen for plugin lifecycle events. 2016-08-11 17:56:43 -07:00
daemon_experimental.go Make daemon events listen for plugin lifecycle events. 2016-08-11 17:56:43 -07:00
daemon_linux.go Fix container mount cleanup issues 2016-03-30 17:25:49 -07:00
daemon_linux_test.go Fix container mount cleanup issues 2016-03-30 17:25:49 -07:00
daemon_solaris.go Add --oom-score-adjust to daemon 2016-07-25 23:14:57 -07:00
daemon_stub.go Make daemon events listen for plugin lifecycle events. 2016-08-11 17:56:43 -07:00
daemon_test.go fix typos 2016-07-25 23:18:15 -07:00
daemon_unix.go Vendor in new containerd 2016-07-25 23:15:42 -07:00
daemon_unix_test.go Daemon to support network restore 2016-06-14 16:45:25 -07:00
daemon_unsupported.go Get the Docker Engine to build clean on Solaris 2016-05-23 16:37:12 -07:00
daemon_windows.go Add --oom-score-adjust to daemon 2016-07-25 23:14:57 -07:00
debugtrap_unix.go Windows: Win32 event for sigusr1 linux equivalence 2015-07-06 18:58:53 -07:00
debugtrap_unsupported.go Get the Docker Engine to build clean on Solaris 2016-05-23 16:37:12 -07:00
debugtrap_windows.go Windows: psignal alias not required 2016-03-27 17:23:34 -07:00
delete.go Merge pull request #21802 from tiborvass/carry-21716 2016-04-06 15:21:38 -04:00
delete_test.go fix typos 2016-07-25 23:18:15 -07:00
discovery.go Wait for discovery on container start error 2016-05-11 09:49:51 -04: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 Make daemon events listen for plugin lifecycle events. 2016-08-11 17:56:43 -07:00
events_test.go Add the possibility to log event with specific attributes 2016-01-17 12:14:01 +01:00
exec.go Update libcontainerd.AddProcess to accept a context 2016-07-25 23:15:43 -07:00
exec_linux.go Replace execdrivers with containerd implementation 2016-03-18 13:38:32 -07:00
exec_solaris.go Get the Docker Engine to build clean on Solaris 2016-05-23 16:37:12 -07:00
exec_windows.go Windows: escape entrypoint before passing to libcontainerd 2016-03-30 12:59:50 -07:00
export.go Remove static errors from errors package. 2016-02-26 15:49:09 -05:00
health.go healthcheck: do not interpret exit code 2 as "starting" 2016-07-25 23:24:47 -07:00
health_test.go healthcheck: do not interpret exit code 2 as "starting" 2016-07-25 23:24:47 -07:00
image.go Move some image related methods & struct to smaller files 2016-05-21 22:36:11 +02:00
image_delete.go Fix untag without force while container running 2016-07-26 01:53:17 -07:00
image_exporter.go Move some image related methods & struct to smaller files 2016-05-21 22:36:11 +02:00
image_history.go Move some image related methods & struct to smaller files 2016-05-21 22:36:11 +02:00
image_inspect.go Move some image related methods & struct to smaller files 2016-05-21 22:36:11 +02:00
image_pull.go Remove reference package dependency from the api. 2016-04-07 15:01:23 -07:00
image_push.go Remove reference package dependency from the api. 2016-04-07 15:01:23 -07:00
image_tag.go Remove reference package dependency from the api. 2016-04-07 15:01:23 -07:00
images.go Treat digest only images as dangling 2016-07-08 15:32:14 -07:00
import.go Remove reference package dependency from the api. 2016-04-07 15:01:23 -07:00
info.go Fix panic when meminfo couldn't be read 2016-07-12 15:50:38 -07:00
inspect.go Fix race on force deleting container created by task 2016-06-14 16:49:04 -07:00
inspect_solaris.go Get the Docker Engine to build clean on Solaris 2016-05-23 16:37:12 -07:00
inspect_unix.go Get the Docker Engine to build clean on Solaris 2016-05-23 16:37:12 -07:00
inspect_windows.go Add Swarm management backend 2016-06-13 22:16:18 -07:00
keys.go Change root_maxkeys 2016-06-30 16:47:52 -07:00
keys_unsupported.go Change root_maxkeys 2016-06-30 16:47:52 -07:00
kill.go fix typos 2016-07-25 23:18:15 -07: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 Sort output of docker ps --filter with order by creation time 2016-08-11 17:56:47 -07:00
list_unix.go Get the Docker Engine to build clean on Solaris 2016-05-23 16:37:12 -07: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 Fix panic while merging log configs to nil map 2016-07-12 15:50:38 -07:00
logs_test.go Fix panic while merging log configs to nil map 2016-07-12 15:50:38 -07:00
monitor.go Attach stdin after attach stdout/err to avoid an rpc lock 2016-07-26 19:17:22 -07:00
monitor_linux.go Adding postRunProcessing infrastructure for hanlding Windows Update. 2016-04-06 14:03:05 -07:00
monitor_solaris.go Get the Docker Engine to build clean on Solaris 2016-05-23 16:37:12 -07:00
monitor_windows.go Fix race on force deleting container created by task 2016-06-14 16:49:04 -07:00
mounts.go Remove static errors from errors package. 2016-02-26 15:49:09 -05:00
names.go Moving some more methods away from daemon.go 2016-05-27 11:32:26 +02:00
network.go Handle ingress sbox creation gracefully 2016-07-25 23:14:57 -07:00
oci_linux.go Fix misspell typos 2016-06-30 16:47:43 -07:00
oci_solaris.go Get the Docker Engine to build clean on Solaris 2016-05-23 16:37:12 -07:00
oci_windows.go Windows: Use image version, not OS version for TTY fixup 2016-05-25 12:22:52 -07:00
pause.go Replace execdrivers with containerd implementation 2016-03-18 13:38:32 -07:00
rename.go No need for container.Lock if rename same name 2016-06-30 16:47:49 -07: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
search.go Add --limit option to docker search 2016-06-02 19:12:20 -07:00
search_test.go Add --limit option to docker search 2016-06-02 19:12:20 -07:00
seccomp_disabled.go Fix seccomp output in docker info 2016-07-12 15:43:38 -07:00
seccomp_linux.go Fix seccomp output in docker info 2016-07-12 15:43:38 -07:00
seccomp_unsupported.go Fix seccomp output in docker info 2016-07-12 15:43:38 -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 Validate hostname starting from 1.24 API. 2016-07-08 15:32:19 -07:00
start_linux.go Update to new swarmkit/engine-api 2016-07-01 00:40:37 -07:00
start_windows.go Add support for multiples runtimes 2016-06-14 07:47:31 -07:00
stats.go cleanup: clean up commented code in daemon/stats.go 2016-06-02 14:39:12 +08:00
stats_collector_solaris.go Get the Docker Engine to build clean on Solaris 2016-05-23 16:37:12 -07:00
stats_collector_unix.go Get the Docker Engine to build clean on Solaris 2016-05-23 16:37:12 -07:00
stats_collector_windows.go Move Container to its own package. 2015-12-03 17:39:49 +01:00
stop.go Add support for user-defined healthchecks 2016-06-02 23:58:34 +02:00
top_unix.go Validate arguments for ps in docker top 2016-07-08 15:33:30 -07:00
top_unix_test.go Validate arguments for ps in docker top 2016-07-08 15:33:30 -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 Validate hostname starting from 1.24 API. 2016-07-08 15:32:19 -07:00
update_linux.go Update containerd and runc vendoring 2016-06-14 07:47:31 -07:00
update_solaris.go Get the Docker Engine to build clean on Solaris 2016-05-23 16:37:12 -07:00
update_windows.go Windows libcontainerd implementation 2016-03-18 13:38:41 -07:00
volumes.go daemon: allow tmpfs to trump over VOLUME(s) 2016-06-16 23:36:51 -07:00
volumes_unit_test.go reorder imports with goimports 2015-12-16 16:50:25 +01:00
volumes_unix.go daemon: allow tmpfs to trump over VOLUME(s) 2016-06-16 23:36:51 -07:00
volumes_windows.go Remove unneeded references to execDriver 2016-03-21 13:06:08 -07:00
wait.go Fix race on force deleting container created by task 2016-06-14 16:49:04 -07:00