Commit Graph

5282 Commits

Author SHA1 Message Date
e5e20b8245 Merge pull request #34296 from mixja/34292-awslogs-driver-repeating-last-event
Fix awslogs driver repeating last event - #34292
Upstream-commit: 63e4aa3f1b7e13a8b9f0e4922f32411ea102c348
Component: engine
2017-07-31 08:54:52 -07:00
c202b3f97f Allow to set the control plane MTU
Add daemon config to allow the user to specify the MTU of the control plane network.
The first user of this new parameter is actually libnetwork that can seed the
gossip with the proper MTU value allowing to pack multiple messages per UDP packet sent.
If the value is not specified or is lower than 1500 the logic will set it to the default.

Signed-off-by: Flavio Crisciani <flavio.crisciani@docker.com>
Upstream-commit: f9f25ca5e44c89d7c1ebdfa9865076eb2cde9bb2
Component: engine
2017-07-28 13:52:03 -07:00
cf98674bff Fix awslogs driver repeating last event - #34292
Signed-off-by: Justin Menga <justin.menga@gmail.com>
Upstream-commit: 0fd5a0bab79f20f910cb7551ec34158a32e05f5a
Component: engine
2017-07-28 20:33:14 +12:00
b022420c94 Merge pull request #34192 from swernli/fixBuilderCopy
Fixing releaseableLayer handling of layer streams and mounts.
Upstream-commit: e9cd2fef805c8182b719d489967fb4d1aa34eecd
Component: engine
2017-07-27 16:15:11 -07:00
5c5712c42e Switch Stat syscalls to x/sys/unix
Switch some more usage of the Stat function and the Stat_t type from the
syscall package to golang.org/x/sys. Those were missing in PR #33399.

Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Upstream-commit: 01f70b028e9597ef207509e8124e120688dae185
Component: engine
2017-07-27 10:09:02 +02:00
15b5db94ff Fixing releaseableLayer handling of layer streams and mounts.
releaseableLayer includes automatic handling for creating a read/write layer and mounting it on a call to Mount(), but then does not correspondingly unmount the layer before trying to delete it, which will fail for some graphdrivers. Commit on a releaseable layer also leaks the tarstream for the layer. To fix this, the stream close is deferred in Commit and releaseRWLayer now correctly handles unmounting the layer before trying to delete it.  In addition, the changes include better error handling in Release() to make sure that errors are returned to the caller for failures on read/write layers instead of being ignored.# Please enter the commit message for your changes. Lines starting

Signed-off-by: Stefan Wernli <swernli@ntdev.microsoft.com>
Upstream-commit: 1d457999c4540aacda68f834bdb3c6f220ce3fd5
Component: engine
2017-07-26 14:26:56 -07:00
8f5aa8e137 Merge pull request #33440 from RenaudWasTaken/genericresource
Added support for Generic Resources
Upstream-commit: 9319a8a2dd5760b3d0eda359b8c3872f5e37aa87
Component: engine
2017-07-25 15:32:25 -04:00
2029cf1c2d Added support for Generic Resources
Signed-off-by: Renaud Gaubert <rgaubert@nvidia.com>
Upstream-commit: 87e1464c438f4163e2694a0bf29ae5a45903449b
Component: engine
2017-07-24 17:49:56 -07:00
e2cfb7ac98 cluster: Avoid recursive RLock
GetTasks can call GetService and GetNode with the read lock held. These
methods try to aquire the read side of the same lock. According to the
sync package documentation, this is not safe:

> If a goroutine holds a RWMutex for reading, it must not expect this or
> any other goroutine to be able to also take the read lock until the
> first read lock is released. In particular, this prohibits recursive
> read locking. This is to ensure that the lock eventually becomes
> available; a blocked Lock call excludes new readers from acquiring the
> lock.

Fix GetTasks to use the lower-level getService and getNode methods
instead. Also, use lockedManagerAction to simplify GetTasks.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
Upstream-commit: bd4f66c8f1f6ad4a2f228a957f293bc157e13d9c
Component: engine
2017-07-24 10:52:44 -07:00
55833ad972 Merge pull request #34174 from aaronlehmann/logattributes
Avoid using a map for log attributes
Upstream-commit: 901fe35bd3ab1d4c25872c8a92577c4f088bba74
Component: engine
2017-07-21 22:31:51 +02:00
5eb81e4819 Merge pull request #33960 from cpuguy83/ignore_not_exist_err
Fix error handling with not-exist errors on remove
Upstream-commit: 67eeb0490d9beacbd6e00eb4ea20cfe692ebf333
Component: engine
2017-07-21 13:52:27 +02:00
ca6a533d23 Fix error handling with not-exist errors on remove
Specifically, none of the graphdrivers are supposed to return a
not-exist type of error on remove (or at least that's how they are
currently handled).

Found that AUFS still had one case where a not-exist error could escape,
when checking if the directory is mounted we call a `Statfs` on the
path.

This fixes AUFS to not return an error in this case, but also
double-checks at the daemon level on layer remove that the error is not
a `not-exist` type of error.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Upstream-commit: d42dbdd3d48d0134f8bba7ead92a7067791dffab
Component: engine
2017-07-20 12:26:27 -04:00
43848053b0 Add a log message when the storage driver is overriden through the environment
Signed-off-by: Jérôme Petazzoni <jerome.petazzoni@gmail.com>
Upstream-commit: 84aefe869786f48151e76504746d576e6d377d79
Component: engine
2017-07-20 17:38:34 +02:00
b337882c5b Avoid using a map for log attributes
Having a map per log entry seemed heavier than necessary. These
attributes end up being sorted and serialized, so storing them in a map
doesn't add anything (there's no random access element). In SwarmKit,
they originate as a slice, so there's an unnecessary conversion to a map
and back.

This also fixes the sort comparator, which used to inefficiently split
the string on each comparison.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
Upstream-commit: b642b3f21f17cf50c79e464d3aedc93b2dbf0fb0
Component: engine
2017-07-18 19:01:20 -07:00
00e1fa391a Merge pull request #34123 from twistlock/plugable_secrets_backend
pluggable secret backend
Upstream-commit: 08f7cf05268782a0dd8e4c41a4cc65fdf78d09f2
Component: engine
2017-07-17 19:00:30 -04:00
2e0ee810bb Merge pull request #33886 from aaronlehmann/names-in-memdb
Store container names in memdb
Upstream-commit: 458f6712d4128cbf32675990ae3ad779e2972839
Component: engine
2017-07-17 14:16:41 -04:00
tim
812c72c3da Replaces fluentd-address string by constant
Signed-off-by: tim <tim@fewagainstmany.com>
Upstream-commit: cb972b1515428fd7a8ef573fa65af08a6fef669c
Component: engine
2017-07-16 23:06:57 -07:00
ed052d78fd pluggable secret backend
This commit extends SwarmKit secret management with pluggable secret
backends support.

Updating the work in
[swarmkit](docker/swarmkit@eebac27434) for
pluggable secret backend and adding the
driver parameter to `SecretSpec`.

Remaining work:
- [ ] CLI support (docker/cli)
- [ ] api in [plugin helpers](docker/go-plugins-helpers))
- [ ] Reference plugin
- [ ] Documenation (after cli work)

Signed-off-by: Liron Levin <liron@twistlock.com>
Upstream-commit: 7d45cafd5746e847e58078aa2fbdde57b5f49fa4
Component: engine
2017-07-15 16:50:02 +03:00
240df15e94 Merge pull request #34076 from yastij/33679-renaming-id-meth
renaming id() to state clearly that it's related to the networkAttachment
Upstream-commit: ce0ef9568d945b3d16442906a428b6f80fedc4dd
Component: engine
2017-07-14 00:29:09 -07:00
b9deee44fd Merge pull request #33969 from Microsoft/jjh/lifetime
LCOW: Service VM lifetime changes
Upstream-commit: f22cecf9297a467f20bf49bc1c7aef5d2ee3a59c
Component: engine
2017-07-13 15:51:21 -07:00
107190981d Store container names in memdb
Currently, names are maintained by a separate system called "registrar".
This means there is no way to atomically snapshot the state of
containers and the names associated with them.

We can add this atomicity and simplify the code by storing name
associations in the memdb. This removes the need for pkg/registrar, and
makes snapshots a lot less expensive because they no longer need to copy
all the names. This change also avoids some problematic behavior from
pkg/registrar where it returns slices which may be modified later on.

Note that while this change makes the *snapshotting* atomic, it doesn't
yet do anything to make sure containers are named at the same time that
they are added to the database. We can do that by adding a transactional
interface, either as a followup, or as part of this PR.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
Upstream-commit: 1128fc1add66a849c12d2045aed39605e673abc6
Component: engine
2017-07-13 12:35:00 -07:00
9ed5ded98d LCOW: Service VM lifetime changes
Signed-off-by: John Howard <jhoward@microsoft.com>

This changes the LCOW driver to support both global SVM lifetime and
per-instance lifetime. It also corrects the scratch implementation.
Upstream-commit: 76b0d4819a50c50edd79890db0b92eb96c8d46e6
Component: engine
2017-07-13 11:09:43 -07:00
f68d310a1b Merge pull request #32881 from coolljt0725/fix_exec_faild
Enable inspect exec if container is pause/restarting/non-running
Upstream-commit: 53a75ee05072cf5e59e9fb5b9e5cc5fb91fdb5be
Component: engine
2017-07-12 19:29:27 -07:00
2015772003 Merge pull request #34027 from cpuguy83/15853_allow_stopping_paused_container
Allow stopping of paused container
Upstream-commit: 6fdb2fb069b985f244eb227828b00a940ee9de84
Component: engine
2017-07-13 10:16:46 +08:00
a6bf694e20 Merge pull request #33845 from cyphar/devicemapper-show-me-your-logs
devicemapper: rework logging and add --storage-opt dm.libdm_log_level
Upstream-commit: 00b218216d8a2075bf7200df74aa07b749f72f34
Component: engine
2017-07-12 17:46:14 -07:00
8e0ce0ecdb Merge pull request #33877 from rhvgoyal/sync-removal
devicemapper: Wait for device removal if deferredRemoval=true and deferredDeletion=…
Upstream-commit: e04dbe5ac287c2a856b7c96972d931ee5f0e288f
Component: engine
2017-07-12 17:35:45 -07:00
7aed75f09c Allow stopping of paused container
When a container is paused, signals are sent once the container has been
unpaused.
Instead of forcing the user to unpause a container before they can ever
send a signal, allow the user to send the signals, and in the case of a
stop signal, automatically unpause the container afterwards.

This is much safer than unpausing the container first then sending a
signal (what a user is currently forced to do), as the container may be
paused for very good reasons and should not be unpaused except for
stopping.
Note that not even SIGKILL is possible while a process is paused,
but it is killed the instant it is unpaused.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Upstream-commit: c3feb046b9b1eb606cc7e853d020799eb3800e0e
Component: engine
2017-07-12 10:35:48 -04:00
165659798d renaming id() to state clearly that it's related to the networkAttachement container target
Signed-off-by: Yassine TIJANI <yasstij11@gmail.com>
Upstream-commit: 27c0131a43b1f4956446467273e82826264d6c35
Component: engine
2017-07-12 15:58:31 +02:00
bd835f3c9e Merge pull request #34061 from cyli/re-vendor-swarmkit
Re-vendor swarmkit. 
Upstream-commit: c0e6da7637491886904725c2fcec9db6ec261af4
Component: engine
2017-07-11 20:30:56 -07:00
c30b5760e3 Merge pull request #34032 from allencloud/support-config-event-in-cluster
make engine support cluster config event
Upstream-commit: 334702ab1fa8d3d6c64f3c41d80752c7b4196357
Component: engine
2017-07-11 20:25:19 -07:00
52c2abd279 Merge pull request #34004 from yummypeng/fix-docker-stats-hang
Return an empty stats if "container not found"
Upstream-commit: c8a2596d676a815cc17162f178869be4aeb4b301
Component: engine
2017-07-11 20:10:17 -07:00
57481ff30b Re-vendor swarmkit. This includes the following fixes:
- https://github.com/docker/swarmkit/pull/2266 (support for templating Node.Hostname in docker executor)
- https://github.com/docker/swarmkit/pull/2281 (change restore action on objects to be update, not delete/create)
- https://github.com/docker/swarmkit/pull/2285 (extend watch queue with timeout and size limit)
- https://github.com/docker/swarmkit/pull/2253 (version-aware failure tracking in the scheduler)
- https://github.com/docker/swarmkit/pull/2275 (update containerd and port executor to container client library)
- https://github.com/docker/swarmkit/pull/2292 (rename some generic resources)
- https://github.com/docker/swarmkit/pull/2300 (limit the size of the external CA response)
- https://github.com/docker/swarmkit/pull/2301 (delete global tasks when the node running them is deleted)

Minor cleanups, dependency bumps, and vendoring:
- https://github.com/docker/swarmkit/pull/2271
- https://github.com/docker/swarmkit/pull/2279
- https://github.com/docker/swarmkit/pull/2283
- https://github.com/docker/swarmkit/pull/2282
- https://github.com/docker/swarmkit/pull/2274
- https://github.com/docker/swarmkit/pull/2296 (dependency bump of etcd, go-winio)

Signed-off-by: Ying Li <ying.li@docker.com>
Upstream-commit: 4509a001dffff626d2d8708fd2eb1c6317b201f3
Component: engine
2017-07-11 13:43:43 -07:00
e95f4619cd [project] change syscall to /x/sys/unix|windows
Changes most references of syscall to golang.org/x/sys/
Ones aren't changes include, Errno, Signal and SysProcAttr
as they haven't been implemented in /x/sys/.

Signed-off-by: Christopher Jones <tophj@linux.vnet.ibm.com>

[s390x] switch utsname from unsigned to signed

per 33267e036f
char in s390x in the /x/sys/unix package is now signed, so
change the buildtags

Signed-off-by: Christopher Jones <tophj@linux.vnet.ibm.com>
Upstream-commit: 069fdc8a083cb1663e4f86fe3fd9b9a1aebc3e54
Component: engine
2017-07-11 08:00:32 -04:00
94a5aefc94 make engine support cluster config event
Signed-off-by: allencloud <allen.sun@daocloud.io>
Upstream-commit: ed916a233c577693afc8dc3122311c15246d00cc
Component: engine
2017-07-11 17:21:15 +08:00
3ac74eb8fd Merge pull request #33979 from allencloud/return-prune-data-when-context-canceled
return prune data when context canceled
Upstream-commit: 73e8f56d6aed223c0f9997e8bd225e446664e647
Component: engine
2017-07-10 21:17:18 -04:00
b53529452f Merge pull request #33377 from yastij/33371-matchevent-filtering
matching events using ID and name
Upstream-commit: e56e78976eefdd17d333c3aa63382b2e4bfd889d
Component: engine
2017-07-10 16:11:14 +02:00
9e646d8386 Return an empty stats if "container not found"
If we get "container not found" error from containerd, it's possibly
because that this container has already been stopped. It will be ok to
ignore this error and just return an empty stats.

Signed-off-by: Yuanhong Peng <pengyuanhong@huawei.com>
Upstream-commit: 4a6cbf9bcb78d38c48ef963f585f0fadf733e101
Component: engine
2017-07-10 16:30:48 +08:00
f4101eb2fb return prune data when context canceled
Signed-off-by: allencloud <allen.sun@daocloud.io>
Upstream-commit: 87b4dc2002d50e245f432bbd97e9dee2db25cf96
Component: engine
2017-07-10 10:06:24 +08:00
23b4fdf3bc removing TODO, and explain why we can't filter by id on the matchevent method.
Signed-off-by: Yassine TIJANI <yasstij11@gmail.com>
Upstream-commit: be9aa09246534a1fdf7c08cf287dbe1e6de375c9
Component: engine
2017-07-07 23:32:37 +02:00
0887a18a3a Merge pull request #33575 from cpuguy83/plugins_on_swarm
Plugins on swarm
Upstream-commit: 05c7c311390911daebcf5d9519dee813fc02a887
Component: engine
2017-07-07 02:23:07 -07:00
0371882bb8 Merge pull request #33662 from madhanrm/sharedendpoint
Include Endpoint List for Shared Endpoints
Upstream-commit: 9aecbbf9bf50dd5c3d250e8dc1c74360a9f30d8e
Component: engine
2017-07-06 23:44:23 -07:00
cb27d2c59c Merge pull request #33940 from yaocaigen/fix_container_multi_names
Fix run `docker rename <container-id> new_name` concurrently, the container will have multi names
Upstream-commit: 8e3555f8539d91f530f895e19a51db14f1ca93fb
Component: engine
2017-07-07 10:58:01 +09:00
abfe031053 Merge pull request #33713 from x1022as/error_fd
fd leak and error handling
Upstream-commit: 3be2273d03e4b06dff4006b1a600c578c7aa09fc
Component: engine
2017-07-06 16:47:34 -07:00
455cc50b83 Include Endpoint List for Shared Endpoints
Do not allow sharing of container network with hyperv containers

Signed-off-by: Madhan Raj Mookkandy <madhanm@microsoft.com>
Upstream-commit: 349913ce9fde34d8acd08fad5ce866401f4d135e
Component: engine
2017-07-06 12:19:17 -07:00
c782cb6c44 Make plugin emit strongly typed, consumable events
Enables other subsystems to watch actions for a plugin(s).

This will be used specifically for implementing plugins on swarm where a
swarm controller needs to watch the state of a plugin.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Upstream-commit: 72c3bcf2a533a827402945e3a55872e2db4fb024
Component: engine
2017-07-06 14:26:06 -04:00
74d8ac0d96 Merge pull request #33897 from cpuguy83/jsonfile_log_blocking
Fix log readers can block writes indefinitely
Upstream-commit: db8c2651b84c681579389bb57d309a3b210a7e78
Component: engine
2017-07-05 18:21:14 -07:00
096ae0539f Merge pull request #33898 from crosbymichael/swappiness
Do not set -1 for swappiness
Upstream-commit: 490b55e8fa73be4c78de0118fe63a7ce5dc0f383
Component: engine
2017-07-05 17:04:08 -07:00
2aedd8b160 Fix log readers can block writes indefinitely
Before this patch, a log reader is able to block all log writes
indefinitely (and other operations) by simply opening the log stream and
not consuming all the messages.

The reason for this is we protect the read stream from corruption by
ensuring there are no new writes while the log stream is consumed (and
caught up with the live entries).

We can get around this issue because log files are append only, so we
can limit reads to only the section of the file that was written to when
the log stream was first requested.

Now logs are only blocked until all files are opened, rather than
streamed to the client.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Upstream-commit: e2209185ed1c959131d4068ec7fc93e194dc0802
Component: engine
2017-07-05 14:04:52 -04:00
14554f495c Fix run docker rename <container-id> new_name concurrently, the container will have multi names
When run `docker rename <container-id> new_name` concurrently, every operation will release
container's old name. So container will have multi new names reserve in nameIndex.

Signed-off-by: Yang Pengfei <yangpengfei4@huawei.com>
Upstream-commit: cc2340689c431504689d01c9516b3a340b2e8dbc
Component: engine
2017-07-05 16:56:31 +08:00
ec1ee882b3 Merge pull request #33322 from jsoref/spelling
Spelling
Upstream-commit: ff4f700f74450018f36d014f3cde0ff1b9c17fb3
Component: engine
2017-07-04 15:46:34 +02:00