Commit Graph

30724 Commits

Author SHA1 Message Date
75a4055d7c Ensure that a device mapper task is referenced until task is complete
DeviceMapper tasks in go use SetFinalizer to clean up C construct
counterparts in the C LVM library.  While thats well and good, it relies
heavily on the exact interpretation of when the golang garbage collector
determines that an object is unreachable is subject to reclaimation.
While common sense would assert that for stack variables (which these DM
tasks always are), are unreachable when the stack frame in which they
are declared returns, thats not the case.  According to this:

https://golang.org/pkg/runtime/#SetFinalizer

The garbage collector decides that, if a function calls into a
systemcall (which task.run() always will in LVM), and there are no
subsequent references to the task variable within that stack frame, then
it can be reclaimed.  Those conditions are met in several devmapper.go
routines, and if the garbage collector runs in the middle of a
deviceMapper operation, then the task can be destroyed while the
operation is in progress, leading to crashes, failed operations and
other unpredictable behavior.

The fix is to use the KeepAlive interface:

https://golang.org/pkg/runtime/#KeepAlive

The KeepAlive method is effectively an empy reference that fools the
garbage collector into thinking that a variable is still reachable.  By
adding a call to KeepAlive in the task.run() method, we can ensure that
the garbage collector won't reclaim a task object until its execution
within the deviceMapper C library is complete.

Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
Upstream-commit: d764d8b16624e4924b3949273089f851efa0f717
Component: engine
2017-05-24 11:11:23 -04:00
05027a4b96 Update go-winio to v0.4.2
Signed-off-by: Darren Stahl <darst@microsoft.com>
Upstream-commit: 3f13107223a9753d709c196c46f1c846041fc0c3
Component: engine
2017-05-23 18:27:50 -07:00
e549564e77 Fix cancelling builder on chunked requests
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
Upstream-commit: 23628bd7efb0aae565cea5ee040e373b0c93fd8d
Component: engine
2017-05-23 16:29:13 -07:00
5556f64d13 Vendor swarmkit 7e096ced
Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
Upstream-commit: 10df99f9ae48acc9888494223256637a8ca06f50
Component: engine
2017-05-23 15:01:35 -07:00
bdc8240507 Fix request.SockRequestRaw error check
We should check for error before reading the response (response can be
nil, and thus this would panic)

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Upstream-commit: 45e0376ea361811b2f5d0653a6b103dd39653371
Component: engine
2017-05-23 12:48:22 -07:00
850d525b5f Extract imageProber and ContainerBackend from Builder
Extract a common function for builder.createContainer
Extract imageCache for doing cache probes
Removes the cacheBuested field from Builder
Create a new containerManager class which reduces the interface between the
builder and managing containers to 3 functions (from 6)

Signed-off-by: Daniel Nephin <dnephin@docker.com>
Upstream-commit: 19f3b0715cf89f336efa286ea1d3f8b57d8c4973
Component: engine
2017-05-23 15:12:58 -04:00
c70c1ec6df Merge pull request #33341 from cyli/do-not-clear-state-on-swarm-init-join
Do not clear swarm directory on `swarm init` and `swarm join`
Upstream-commit: a9fcaee3514c60d997044b246e4c06e9ba80f4f5
Component: engine
2017-05-23 12:09:53 -07:00
93de81213c Support FROM...AS syntax for multi stage build dockerfiles
Signed-off-by: chrisdias <cdias@microsoft.com>
Upstream-commit: 8523e9d108a0e98865673701a7bd0a7929c5260b
Component: engine
2017-05-22 18:12:10 -07:00
90e101ed15 Do not clear swarm directory at the begining of swarm init and swarm join now.
However, do clear the directory if init or join fails, because we don't
want to leave it in a half-finished state.

Signed-off-by: Ying Li <ying.li@docker.com>
Upstream-commit: bf3e9293a66c77a2fddf4e691222898846b4af9f
Component: engine
2017-05-22 17:45:20 -07:00
cc72dd2445 Stop referring CLI flags in error messages if API client is unknown
Signed-off-by: Stanislav Bondarenko <stanislav.bondarenko@gmail.com>
Upstream-commit: 92291a7355dff35be70b5d0ebf634f0232ca6a94
Component: engine
2017-05-22 18:50:49 -04:00
949950950a vendor: Remove docker-credential-helpers
This appears to be a remnant from the CLI that is no longer imported
anywhere. Remove it from vendor.conf and the vendor directory.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
Upstream-commit: aa6fc939baf0bae00391a0ba703187018055b8bf
Component: engine
2017-05-22 13:58:28 -07:00
d64468f256 Merge pull request #33279 from nishanttotla/fix-service-image-issues
Ensure service images get default tag and print familiar strings
Upstream-commit: 5648a1ada223d692615072af26d0ce6e23415006
Component: engine
2017-05-22 21:45:11 +01:00
7813ee64ef Merge pull request #33310 from darrenstahlmsft/RevendorGowinio
Revendor go-winio to v0.4.1
Upstream-commit: 65f360fc415a5ef648250a76ca261c2ae529467a
Component: engine
2017-05-22 10:31:57 -07:00
3dea3b7a46 Merge pull request #32774 from darrenstahlmsft/ProcessorMaximum
Use CpuMaximum instead of CpuPercent for more precision
Upstream-commit: bb64d45be1dce3fe1a526b2362a7d8451bfdcbe3
Component: engine
2017-05-22 08:55:17 -07:00
45dcc1512b Merge pull request #33253 from dave-tucker/clientHost
client: Expose ClientHost to client users
Upstream-commit: ab2abb0d940476fcb56d2ee565afdf1bc4d525d4
Component: engine
2017-05-22 16:27:43 +01:00
4a211248b9 client: Expose DaemonHost to client users
This commit exposes `Client.host` as `Client.DaemonHost()`
This allows users of the client, a CLI for example, to query the Host
that the client is attempting to contact and vary their behaviour
accordingly. For example, to allow client-side configuration of
HTTP proxy settings for a number of different docker hosts.

Signed-off-by: Dave Tucker <dt@docker.com>
Upstream-commit: 6ce6ae1cd11d888e0c8ede20926b86981cee5ce1
Component: engine
2017-05-22 13:25:11 +01:00
a5644c91a3 Add container environment variables correctly to the health check
The health check process doesn't have all the environment
varialbes in the container or has them set incorrectly.

This patch should fix that problem.

Signed-off-by: Boaz Shuster <ripcurld.github@gmail.com>
Upstream-commit: 5836d86ac4d617e837d94010aa60384648ab59ea
Component: engine
2017-05-21 21:39:00 +03:00
52f875b0b8 Merge pull request #33307 from dongluochen/swarm_event_test
Event tests need retry logic
Upstream-commit: 916e9ad75472bb5a0ab7acf9515a4d369248791d
Component: engine
2017-05-20 15:48:50 +02:00
d150808e81 Add a restarting check to ContainerAttach
Signed-off-by: yangshukui <yangshukui@huawei.com>
Upstream-commit: 5010e09534c4595ea4bc3f53a415626fc9e9d3b1
Component: engine
2017-05-20 11:27:45 +08:00
bce5af578c Revendor go-winio to v0.4.1
Signed-off-by: Darren Stahl <darst@microsoft.com>
Upstream-commit: af7d8d09ef2dde07c9c0004a14e3a28c93007458
Component: engine
2017-05-19 16:13:52 -07:00
c9ec562bee remove RuntimeData from cluster and types
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
Upstream-commit: 8eeba751983d6499a07fcd21c26f381eb1d17d19
Component: engine
2017-05-19 17:10:32 -04:00
f1ce9152c0 Use CpuMaximum instead of CpuPercent for more precision
Signed-off-by: Darren Stahl <darst@microsoft.com>
Upstream-commit: 425973cbb87aef6a32b225a57f5ef2d78d5749d5
Component: engine
2017-05-19 12:33:14 -07:00
1f14cbbc58 Revendor runtime-spec
Signed-off-by: Darren Stahl <darst@microsoft.com>
Upstream-commit: b90f294c1cf0dd2bc3f139cd8f339da79595a0bb
Component: engine
2017-05-19 12:33:14 -07:00
caad7b9331 Event tests need to wait for events
Signed-off-by: Dong Chen <dongluo.chen@docker.com>
Upstream-commit: 59b2d0473af5155bb31adcc17bc36857ebd13a15
Component: engine
2017-05-19 12:14:50 -07:00
ddd4203548 Merge pull request #33261 from aaronlehmann/empty-platform
api: Only return a Platform when relevant information is available
Upstream-commit: f888a25ff5bc9bb7c95400ec19b9a5fa0d738bab
Component: engine
2017-05-19 20:05:07 +02:00
8d6081fcd1 Adding unit tests for pin by digest (client)
Signed-off-by: Nishant Totla <nishanttotla@gmail.com>
Upstream-commit: 75c7536d2e2e328b644bf69153de879d1d197988
Component: engine
2017-05-19 10:48:12 -07:00
93bcab0aa8 Ensure service images get default tag and print familiar strings
Signed-off-by: Nishant Totla <nishanttotla@gmail.com>
Upstream-commit: 5efcec77170dd6c4087d4f1fb3695c32d94edfb4
Component: engine
2017-05-19 10:35:34 -07:00
756d246384 Merge pull request #33299 from thaJeztah/explain-relation-between-paused-and-stopped
Improve description of Running and Paused booleans
Upstream-commit: 58b1788c81f937bb2aaf1b0077c6b3b23a8397ff
Component: engine
2017-05-19 16:29:05 +02:00
1dc2936c51 Merge pull request #33293 from fd/patch-1
Remove deadlock in ContainerWait
Upstream-commit: d98d4faef86c4ba4470c7f28c2ce92c10de4a565
Component: engine
2017-05-19 16:17:54 +02:00
b0a3ababea Merge pull request #33286 from aboch/ingr
Properly identify ingress network created with older swarm
Upstream-commit: 39a604c0d419424bab0314e7070c49bcacca3bda
Component: engine
2017-05-19 10:04:29 -04:00
845a39e447 Merge pull request #33296 from vdemeester/more-opts-cleanup
Remove more opts unused in docker/docker
Upstream-commit: d8e85f8c60929e0bc1313983f5007ad92f8adf29
Component: engine
2017-05-19 10:01:34 -04:00
4bffda81c9 Improve description of Running and Paused booleans
Commit abd72d4008dde7ee8249170d49eb4bc963c51e24 added
a "FIXME" comment to the container "State", mentioning
that a container cannot be both "Running" and "Paused".

This comment was incorrect, because containers on
Linux actually _must_ be running in order to be
paused.

This patch adds additional information both in a
comment, and in the API documentation to clarify
that these booleans are not mutually exclusive.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Upstream-commit: b654b6244d6d63a0758029488a95feb446e089bd
Component: engine
2017-05-19 12:29:54 +02:00
64383889f3 Remove more opts unused in docker/docker
These are already present in `docker/cli` 👼

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Upstream-commit: 61e527f16ccbbbca137c4db1b13b558ee4a51213
Component: engine
2017-05-19 12:05:51 +02:00
87298d4be7 Remove deadlock in ContainerWait
when `cli.post(...)` fails `errC <- err` blocks because `errC` is unbufferd.

Signed-off-by: Simon Menke <simon.menke@gmail.com>
Upstream-commit: 4d2d2ea39336aade783c5c415b83d129bdd339bb
Component: engine
2017-05-19 09:23:52 +02:00
1e0f9dbab8 arg filt
Signed-off-by: yupengzte <yu.peng36@zte.com.cn>
Upstream-commit: 49bf533fe72fd2390da89d133fbe984d0284ebe2
Component: engine
2017-05-19 13:47:32 +08:00
fc392f988e Merge pull request #33280 from mavenugo/vin-ln-1706
Vendoring libnetwork b2bc1a684
Upstream-commit: ab83b924bc5dde5c2ac81b0befe5e370f3acb7e3
Component: engine
2017-05-18 23:31:23 -04:00
ba221c0328 Properly identify ingress network created with older swarm
- otherwise docker network prune will remove it

Signed-off-by: Alessandro Boch <aboch@docker.com>
Upstream-commit: 93763f11eeec5e9b1d0308a3ad85bbf069f9107f
Component: engine
2017-05-18 19:47:45 -07:00
b1680367c9 Adding support for DNS search on RS1
Signed-off-by: Sandeep Bansal <sabansal@microsoft.com>
Upstream-commit: b8e8dcd6e031d005a2d46d95f84da35b436cd870
Component: engine
2017-05-18 19:41:06 -07:00
01eae47819 Merge pull request #33281 from dmcgowan/overlay2-on-btrfs
Support overlay2 on btrfs
Upstream-commit: 01af41ed99f96693bd04bec1cf0f7a6b97bc2408
Component: engine
2017-05-19 03:09:39 +02:00
200114130e Merge pull request #33278 from tonistiigi/plugin-chroot
Use chrootarchive for plugin rootfs
Upstream-commit: 6c05ceeb0b483f15b4b7b449db6c3f32a5e30d6b
Component: engine
2017-05-19 02:38:29 +02:00
a41009bb07 Merge pull request #33269 from tophj-ibm/switch-more-syscalls-pkg-term
[pkg/term] switch more syscalls to /x/sys/
Upstream-commit: dd27bbb41a7f98a0beea3d7f39da0dbb53e29ff5
Component: engine
2017-05-19 02:37:52 +02:00
10c5371927 Support overlay2 on btrfs
OverlayFS is supported on top of btrfs as of Linux Kernel 4.7.
Skip the hard enforcement when on kernel 4.7 or newer and
respect the kernel check override flag on older kernels.
https://btrfs.wiki.kernel.org/index.php/Changelog#By_feature

Signed-off-by: Derek McGowan <derek@mcgstyle.net>
Upstream-commit: f64a4ad008e68996afcec3ab34a869887716f944
Component: engine
2017-05-18 15:26:03 -07:00
f6ecbd87c6 Vendoring libnetwork
Signed-off-by: Madhu Venugopal <madhu@docker.com>
Upstream-commit: 9b0e1df4dd2dbab6d2aacfaae0ea27deaf5c7c62
Component: engine
2017-05-18 15:14:12 -07:00
2d8e76dfbc Merge pull request #33274 from aaronlehmann/update-cli
Update CLI commit hash
Upstream-commit: da9a8854834cb48a8112d8192811d9c41f8be358
Component: engine
2017-05-18 15:11:10 -07:00
14bb0faf0c Use chrootarchive for plugin rootfs
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
Upstream-commit: 6f3f907cdba0ba1aa4eb1320595d155bab3467af
Component: engine
2017-05-18 14:53:46 -07:00
0d783a82c9 Merge pull request #33267 from YuPengZTE/devImageWithDigestString
ineffectual assignment to isCanonical, delete it, and make the "if" sentence to fit the golang usage
Upstream-commit: b0dd3dfc1184b210854b62c231b7b074dd6dbd26
Component: engine
2017-05-18 23:37:52 +02:00
6b7f9e397d Merge pull request #33250 from cyphar/apparmor-readonly-root-fix
apparmor: make pkg/aaparser work on read-only root
Upstream-commit: 6b262572028cc249b7da8cc55459197395fdb33e
Component: engine
2017-05-18 23:17:31 +02:00
b7e3ae2808 Merge pull request #33264 from wenjianhn/chkp-ls
Fix checkpoint ls
Upstream-commit: cc24049f77eb94ad486bd22c2470f0d13d6158a1
Component: engine
2017-05-18 13:37:42 -07:00
d490134960 Update CLI commit hash
Since this new version of the CLI resolves image digests for swarm
services by default, and we do not want integration tests to talk to
Docker Hub, update CLI tests to suppress this behavior.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
Upstream-commit: d012569b78c27e6e52bc5006d9a1d7a2099b1c2b
Component: engine
2017-05-18 12:23:28 -07:00
17712f857a Improved poor memory efficiency of awslogs
Signed-off-by: YAMASAKI Masahide <masahide.y@gmail.com>
Upstream-commit: 524f30634018ce619da61aa0a13dad245e098226
Component: engine
2017-05-18 23:30:00 +09:00