moby/daemon
Yong Tang faf2b6f7aa Docker stats is not working when a container is using another container's network.
This fix tries to fix the issue in #21848 where `docker stats` will not correctly
display the container stats in case the container reuse another container's
network stack.

The issue is that when `stats` is performed, the daemon will check for container
network setting's `SandboxID`. Unfortunately, for containers that reuse another
container's network stack (`NetworkMode.IsConnected()`), SandboxID is not assigned.
Therefore, the daemon thinks the id is invalid and remote API will never return.

This fix tries to resolve the SandboxID by iterating through connected containers
and identify the appropriate SandboxID.

A test case for `stats` remote API has been added to check if `stats` will return
within the timeout.

This fix fixes #21848.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2016-04-09 20:15:51 +00: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 Merge pull request #20525 from Microsoft/sjw/update-graphdriver-create 2016-04-08 20:44:03 -07:00
links Replace usage of pkg/nat with go-connections/nat. 2015-12-22 13:31:46 -05:00
logger Additional syslog-format option to allow microsecond resolution in syslog timestamp. 2016-04-08 05:00:11 +00:00
network Remove runconfig package dependency from image and container routers. 2016-03-28 16:23:51 -04: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 Windows: Remove TP4 support from main code 2016-04-06 12:12:20 -07:00
attach.go Let client print error when speicify wrong detach keys 2016-04-04 15:35:55 +08:00
builder.go Remove builder dependency from the api. 2016-03-29 17:02:36 -07:00
changes.go Rename Daemon.Get to Daemon.GetContainer. 2015-12-11 12:39:28 -05:00
commit.go Remove reference package dependency from the api. 2016-04-07 15:01:23 -07:00
config.go Merge pull request #21687 from allencloud/fix-typos 2016-03-31 14:18:31 -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 Windows: bridgeConfig rework 2016-03-28 12:24:01 -07:00
config_windows.go Windows: bridgeConfig rework 2016-03-28 12:24:01 -07:00
container_operations.go Merge pull request #21816 from estesp/case-of-the-missing-else 2016-04-07 17:01:30 -07:00
container_operations_unix.go all: remove some unused funcs and variables 2016-04-06 10:40:01 -07:00
container_operations_windows.go Merge pull request #21809 from Microsoft/jjh/tp4removal 2016-04-06 14:11:33 -07:00
create.go daemon: register container as late as possible 2016-03-29 13:52:18 -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: Remove TP4 support from main code 2016-04-06 12:12:20 -07:00
daemon.go Docker stats is not working when a container is using another container's network. 2016-04-09 20:15:51 +00: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-30 17:25:49 -07:00
daemon_linux_test.go Fix container mount cleanup issues 2016-03-30 17:25:49 -07: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 Merge pull request #21853 from coolljt0725/fix_stats 2016-04-09 13:46:58 +02:00
daemon_unix_test.go Consolidate security options to use = as separator. 2016-03-17 13:34:42 -04:00
daemon_unsupported.go Add platformSupported flag to enable daemon mode by platform. 2015-08-07 09:45:24 -07:00
daemon_windows.go Merge pull request #21894 from Microsoft/sjw/nanoserver-fix 2016-04-08 16:43:07 -07:00
debugtrap_unix.go Windows: Win32 event for sigusr1 linux equivalence 2015-07-06 18:58:53 -07:00
debugtrap_unsupported.go Windows: Win32 event for sigusr1 linux equivalence 2015-07-06 18:58:53 -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 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 Let client print error when speicify wrong detach keys 2016-04-04 15:35:55 +08:00
exec_linux.go Replace execdrivers with containerd implementation 2016-03-18 13:38:32 -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
image_delete.go Remove static errors from errors package. 2016-02-26 15:49:09 -05: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 Fix image filter 2016-01-14 08:17:40 +00:00
import.go Remove reference package dependency from the api. 2016-04-07 15:01:23 -07: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 Remove unneeded references to execDriver 2016-03-21 13:06:08 -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 Add name/driver filter support for volume 2016-03-25 01:11:17 +00: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 use router.Cancellable instead of direct CloseNotify 2016-03-25 11:33:54 -07:00
monitor.go Merge pull request #21839 from WeiZhang555/add-start-event 2016-04-08 17:52:22 -07:00
monitor_linux.go Adding postRunProcessing infrastructure for hanlding Windows Update. 2016-04-06 14:03:05 -07:00
monitor_windows.go Adding postRunProcessing infrastructure for hanlding Windows Update. 2016-04-06 14:03:05 -07:00
mounts.go Remove static errors from errors package. 2016-02-26 15:49:09 -05:00
network.go Remove runconfig package dependency from image and container routers. 2016-03-28 16:23:51 -04:00
oci_linux.go Define readonly/mask paths in spec 2016-04-04 18:55:55 -07:00
oci_windows.go Windows: Support non-base-layered images 2016-04-07 17:52:26 -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-08 11:40:32 +08:00
stats.go use router.Cancellable instead of direct CloseNotify 2016-03-25 11:33:54 -07:00
stats_collector_unix.go Fix docker stats missing memory limit 2016-04-07 22:09:07 -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