Alexander Larsson
2ffef1b7eb
devmapper: Avoid AB-BA deadlock
...
We currently drop the global lock while holding a per-device lock when
waiting for device removal, and then we re-aquire it when the sleep is done.
This is causing a AB-BA deadlock if anyone at the same time tries to do any
operation on that device like this:
thread A: thread B
grabs global lock
grabs device lock
releases global lock
sleeps
grabs global lock
blocks on device lock
wakes up
blocks on global lock
To trigger this you can for instance do:
ID=`docker run -d fedora sleep 5`
cd /var/lib/docker/devicemapper/mnt/$ID
docker wait $ID
docker rm $ID &
docker rm $ID
The unmount will fail due to the mount being busy thus causing the
timeout and the second rm will then trigger the deadlock.
We fix this by adding a lock ordering such that the device locks
are always grabbed before the global lock. This is safe since the
device lookups now have a separate lock.
Docker-DCO-1.1-Signed-off-by: Alexander Larsson <alexl@redhat.com > (github: alexlarsson)
2014-04-02 09:05:00 +02:00
Alexander Larsson
70826e8b3f
devmapper: Add lock to protext Devices map
...
Currently access to the Devices map is serialized by the main
DeviceSet lock, but we need to access it outside that lock, so we
add a separate lock for this and grab that everywhere we modify
or read the map.
Docker-DCO-1.1-Signed-off-by: Alexander Larsson <alexl@redhat.com > (github: alexlarsson)
2014-04-02 09:05:00 +02:00
Alexander Larsson
e01b71cebe
devmapper: Add lookupDevice() helper
...
This centralizes the lookup of devices so it is only done in one place.
This will be needed later when we change the locking for it.
Docker-DCO-1.1-Signed-off-by: Alexander Larsson <alexl@redhat.com > (github: alexlarsson)
2014-04-02 09:05:00 +02:00
Alexander Larsson
74edcaf1e8
devmapper: Pass info rather than hash to setInitialized
...
We already have this at the caller, no need to look up again.
Docker-DCO-1.1-Signed-off-by: Alexander Larsson <alexl@redhat.com > (github: alexlarsson)
2014-04-02 09:05:00 +02:00
Alexander Larsson
5955846774
devmapper: Pass info rather than hash to deactivateDevice()
...
We already have the info in most cases, no need to look this up multiple times.
Docker-DCO-1.1-Signed-off-by: Alexander Larsson <alexl@redhat.com > (github: alexlarsson)
2014-04-02 09:05:00 +02:00
Alexander Larsson
8e39b35c7c
devmapper: Pass info rather than hash to deleteDevice
...
All the callers already have the info, no need for an extra lookup.
Docker-DCO-1.1-Signed-off-by: Alexander Larsson <alexl@redhat.com > (github: alexlarsson)
2014-04-02 09:05:00 +02:00
Alexander Larsson
e5394e35c7
devmapper: Pass info rather than hash to activateDeviceIfNeeded
...
There is no need to look this up again, we have it already in all callers.
Docker-DCO-1.1-Signed-off-by: Alexander Larsson <alexl@redhat.com > (github: alexlarsson)
2014-04-02 09:05:00 +02:00
Victor Vieux
93bb208164
Merge pull request #4961 from creack/update_version_pkg
...
Update Version to not use string anymore
2014-04-01 18:37:25 -07:00
Michael Crosby
b4c8232b95
Merge pull request #4964 from creack/add_api_version
...
Add API version to `docker version`
2014-04-01 18:36:18 -07:00
Victor Vieux
d7ec39a4cf
<3
...
Docker-DCO-1.1-Signed-off-by: Victor Vieux <victor.vieux@docker.com > (github: vieux)
2014-04-02 01:19:26 +00:00
Guillaume J. Charmes
b246fc33ae
Add API version to docker version
...
Docker-DCO-1.1-Signed-off-by: Guillaume J. Charmes <guillaume@charmes.net > (github: creack)
2014-04-01 17:30:19 -07:00
Guillaume J. Charmes
8ff02d58d9
Merge pull request #4963 from tianon/check-config
...
Add basic initial "check-config" script to contrib
2014-04-01 16:51:32 -07:00
Victor Vieux
431046e0f5
Merge pull request #4902 from shykes/wozniak_is_not_boring
...
Steve Wozniak is not boring.
2014-04-01 16:49:56 -07:00
unclejack
ceed9382d0
Merge pull request #4931 from crosbymichael/gen-mac-addr-for-bridge
...
Set bridge mac addr on supported kernels
2014-04-02 02:47:56 +03:00
Tianon Gravi
9c0c4aeda4
Add basic initial "check-config" script to contrib
...
Docker-DCO-1.1-Signed-off-by: Andrew Page <admwiggin@gmail.com > (github: tianon)
2014-04-01 17:42:54 -06:00
Sven Dowideit
8cc8b1dd99
Merge pull request #4938 from jlhawn/master
...
No longer expose gravatar_email in docker.io api
2014-04-02 09:13:33 +10:00
unclejack
30ff3fa954
Merge pull request #4867 from crosbymichael/clean-shutdown
...
Cleanly shutdown docker
2014-04-02 01:48:03 +03:00
Guillaume J. Charmes
3ee37f547f
Update Version to not use string anymore
...
Docker-DCO-1.1-Signed-off-by: Guillaume J. Charmes <guillaume@charmes.net > (github: creack)
2014-04-01 15:46:52 -07:00
Michael Crosby
9cf89f8542
Merge pull request #4942 from vieux/cleanup_dev_libcontainer
...
remove setupDev from libcontainer
2014-04-01 14:28:17 -07:00
Victor Vieux
79c0ca81fc
Merge pull request #4958 from crosbymichael/update-port-tests
...
Update test to reallocate port
2014-04-01 14:15:36 -07:00
Victor Vieux
dcf2b72f5b
add test
...
Docker-DCO-1.1-Signed-off-by: Victor Vieux <victor.vieux@docker.com > (github: vieux)
2014-04-01 21:07:40 +00:00
Guillaume J. Charmes
7462cc6479
Merge pull request #4949 from tjmehta/4908-fix_dynamic_port_allocation_limit
...
Fix dynamic port allocation limit
2014-04-01 13:49:21 -07:00
Guillaume J. Charmes
b4b87413d8
Merge pull request #4833 from crosbymichael/pluginflag
...
Add opts flag for fine grained control over drivers
2014-04-01 13:34:08 -07:00
Michael Crosby
3178723341
Merge pull request #4956 from tianon/sig
...
Simplify the kill "SIG" prefix stripping code
2014-04-01 13:10:16 -07:00
Victor Vieux
e175a55eb9
Merge pull request #4948 from creack/push_single_tag
...
Allow push of a single tag
2014-04-01 12:54:15 -07:00
Tianon Gravi
4bf70317ed
Simplify the kill "SIG" prefix stripping code
...
Docker-DCO-1.1-Signed-off-by: Andrew Page <admwiggin@gmail.com > (github: tianon)
2014-04-01 13:33:46 -06:00
Michael Crosby
7ab66fa694
Merge pull request #4947 from tianon/sig
...
Allow "SIG" prefix on signal names in `docker kill` ("SIGKILL", etc)
2014-04-01 11:59:44 -07:00
Victor Vieux
b01c3a8b6c
Merge pull request #4945 from samalba/fix-checksum-layer
...
Fix checksum layer
2014-04-01 11:31:59 -07:00
Guillaume J. Charmes
b8d660d946
Update docs. Make PULL up to date, remove deprecated falg and update PUSH
...
Docker-DCO-1.1-Signed-off-by: Guillaume J. Charmes <guillaume@charmes.net > (github: creack)
2014-04-01 11:17:54 -07:00
Victor Vieux
1aa976aca9
Merge pull request #4920 from discordianfish/we-need-more-women
...
Improve gender equality
2014-04-01 11:15:34 -07:00
Michael Crosby
249a5ddfeb
Merge pull request #4916 from creack/no_error_start_twice
...
Don't error when trying to start a running container
2014-04-01 10:45:31 -07:00
Guillaume J. Charmes
7a50f03fa6
Update test to be consistent
...
Docker-DCO-1.1-Signed-off-by: Guillaume J. Charmes <guillaume@charmes.net > (github: creack)
2014-04-01 10:27:10 -07:00
Guillaume J. Charmes
cff5f0357e
Minor cleanup
...
Docker-DCO-1.1-Signed-off-by: Guillaume J. Charmes <guillaume@charmes.net > (github: creack)
2014-04-01 10:27:05 -07:00
Guillaume J. Charmes
a03f83e337
Do not error when trying to start a started container
...
Docker-DCO-1.1-Signed-off-by: Guillaume J. Charmes <guillaume@charmes.net > (github: creack)
2014-04-01 10:26:53 -07:00
Tianon Gravi
4cb602afa0
Allow "SIG" prefix on signal names in docker kill ("SIGKILL", etc)
...
This way, we can use both `docker kill -s INT some_container` and `docker kill -s SIGINT some_container` and both will do nice things for us. :)
Docker-DCO-1.1-Signed-off-by: Andrew Page <admwiggin@gmail.com > (github: tianon)
2014-04-01 11:01:07 -06:00
Tianon Gravi
527bb5e960
Merge pull request #4904 from creack/make_dev
...
Add "BINDDIR" variable to facilitate having a shell with the full source tree bind-mounted
2014-04-01 10:19:56 -06:00
Guillaume J. Charmes
bd24eb07b6
Add $BINDIR to allow mounting the whole sources if needed (for development)
...
Docker-DCO-1.1-Signed-off-by: Guillaume J. Charmes <guillaume@charmes.net > (github: creack)
2014-04-01 09:01:27 -07:00
Michael Crosby
ac9b06ae95
Update sig message
...
Docker-DCO-1.1-Signed-off-by: Michael Crosby <michael@crosbymichael.com > (github: crosbymichael)
2014-04-01 08:18:52 +00:00
Michael Crosby
6b7cfc9e95
Update test to reallocate port
...
Docker-DCO-1.1-Signed-off-by: Michael Crosby <michael@crosbymichael.com > (github: crosbymichael)
2014-04-01 07:27:34 +00:00
Michael Crosby
93779cc7fe
Send sigterm and wait forever
...
Docker-DCO-1.1-Signed-off-by: Michael Crosby <michael@crosbymichael.com > (github: crosbymichael)
2014-04-01 07:12:50 +00:00
Michael Crosby
e36d89b0f9
Ensure state is saved to disk after we kill the ghost
...
Docker-DCO-1.1-Signed-off-by: Michael Crosby <michael@crosbymichael.com > (github: crosbymichael)
2014-04-01 07:12:50 +00:00
Michael Crosby
283daced0c
Don't send prctl to be consistent with other drivers
...
Docker-DCO-1.1-Signed-off-by: Michael Crosby <michael@crosbymichael.com > (github: crosbymichael)
2014-04-01 07:12:50 +00:00
Michael Crosby
5bb82f6313
Ensure a reliable way to kill ghost containers on reboot
...
Docker-DCO-1.1-Signed-off-by: Michael Crosby <michael@crosbymichael.com > (github: crosbymichael)
2014-04-01 07:11:41 +00:00
Michael Crosby
5b9069bd99
Add kill for other drivers on restart
...
Docker-DCO-1.1-Signed-off-by: Michael Crosby <michael@crosbymichael.com > (github: crosbymichael)
2014-04-01 07:11:41 +00:00
Michael Crosby
f067e26367
Ensure that all containers are stopped cleanly at shutdown
...
Docker-DCO-1.1-Signed-off-by: Michael Crosby <michael@crosbymichael.com > (github: crosbymichael)
2014-04-01 07:11:41 +00:00
Michael Crosby
40c6d00c97
Update imports to be consistent
...
Docker-DCO-1.1-Signed-off-by: Michael Crosby <michael@crosbymichael.com > (github: crosbymichael)
2014-04-01 07:07:42 +00:00
tjmehta
739d124480
make findNextPort circular, add all-ports-allocated error
...
Docker-DCO-1.1-Signed-off-by: Tejesh Mehta <tejesh.mehta@gmail.com > (github: tjmehta)
2014-03-31 22:21:52 -07:00
Guillaume J. Charmes
e648a186d6
Allow push of a single tag
...
Docker-DCO-1.1-Signed-off-by: Guillaume J. Charmes <guillaume@charmes.net > (github: creack)
2014-03-31 18:50:10 -07:00
Sam Alba
de9fba7172
Payload checksum now match the checksum simple
...
Backported for backward compatibility.
Docker-DCO-1.1-Signed-off-by: Sam Alba <sam.alba@gmail.com > (github: samalba)
2014-03-31 18:31:15 -07:00
Sam Alba
3f0886c8c3
Inverted layer checksum and tarsum.
...
The checksum of the payload has to be computed on the Gzip'ed content.
Docker-DCO-1.1-Signed-off-by: Sam Alba <sam.alba@gmail.com > (github: samalba)
2014-03-31 17:56:25 -07:00