Currently, we get the network stats each time per subscriber, causing a
high load of cpu when there are several subscribers per container.
This change makes the daemon to collect once and publish N times, where N is the
number of subscribers per container.
Signed-off-by: David Calavera <david.calavera@gmail.com>
Upstream-commit: 453473d6a964e58f4a61599bd90d62d0088f0cc2
Component: engine
- On `docker run --net <network id> ...`
the bug would cause the container to attempt
to connect to the network two times
- Also made sure endpoint creation rollback will
be executed on failures in `func (container *Container) connectToNetwork()`
Signed-off-by: Alessandro Boch <aboch@docker.com>
Upstream-commit: 45e71a79840887b7974387bedba0544015ab4e3b
Component: engine
For graceful restart case it was done when the container was brought
down. But for ungraceful cases, the persistence is missing for nw
connect
Signed-off-by: Madhu Venugopal <madhu@docker.com>
Upstream-commit: 401632c7568408ee9689adc1da855cfb1409e906
Component: engine
And do not try to unmount empty paths.
Because nobody should be woken up in the middle of the night for them.
Signed-off-by: David Calavera <david.calavera@gmail.com>
Upstream-commit: a54d5932e3a644317c77d59bc5aee562841d5c20
Component: engine
This fixes a bug introduced in #15786:
* if a pre-v1.20 client requested docker stats, the daemon
would return both an API-compatible JSON blob *and* an API-incompatible JSON
blob: see https://gist.github.com/donhcd/338a5b3681cd6a071629
Signed-off-by: Donald Huang <don.hcd@gmail.com>
Upstream-commit: d2c04f844b8258d712da4b8feac25df7590b037c
Component: engine
- Keep old fields in NetworkSetting to respect the deprecation policy.
Signed-off-by: David Calavera <david.calavera@gmail.com>
Upstream-commit: f301c5765a0d7f4b6866cedfdface6f87874ff53
Component: engine
- So that it complies with docker convention for inspect
Signed-off-by: Alessandro Boch <aboch@docker.com>
Upstream-commit: d795bc7d53db4b9e9194d0570d65e22d39f58384
Component: engine
Instead of using `MNT_DETACH` to unmount the container's mqueue/shm
mounts, force it... but only on daemon init and shutdown.
This makes sure that these IPC mounts are cleaned up even when the
daemon is killed.
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Upstream-commit: 78bd17e805b7514505455b10f2fd90962505a3ff
Component: engine
The json decoder starts to decode immediately an inotify event is
received.
But at the time the inotify event is trigged, the json log
entry might haven't been fully written to the disk.
In this case the decoder will return an "io.UnexpectedEOF" error, but
there is still data remaining in the decoder's buffer. And the data
should be passed to the decoder when the next inotify event is
triggered.
Signed-off-by: Shijiang Wei <mountkin@gmail.com>
Upstream-commit: e41eae8b42052d07432405cca113ffcf8cf49c06
Component: engine
You cannot do this for individual cgroups for all the containers. Only
set the reservation if the user requested it. The error you will
receive is an EINTVAL when you try to set a large limit like we were in
the memory limit.
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
Upstream-commit: ecb87ed0a5128a3d9ab3b0a620463b7b56e82bab
Component: engine
* for simmetry with fromDisk
* it might be slightly better for GC because of internal sync.Pool
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
Upstream-commit: cf02b369e077022335f01b2f78ebd759129de82a
Component: engine
When a container restarts after a ungraceful daemon restart, first
cleanup any unclean sandbox before trying to allocate network resources.
Signed-off-by: Madhu Venugopal <madhu@docker.com>
Upstream-commit: 0c07096b7da6dc28df10df21283fc21b3b052e1a
Component: engine
Also make daemon.netController.Stop() regardless of container existance.
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
Upstream-commit: ace5854f654d58e821bb3d47c4e3255ae49619e5
Component: engine