moby--moby/graph
Stephen J Day 7eac23cf8d Attempt to protect on disk image store with mutex
During `(*Graph).Register, there was no protection on adding new layers
concurrently. In some cases, this resulted in corruption of a layer by creating
the directory but not the underlying data. This manifested in several different
IO errors reported in the client.  This attempts to fix this by adding a mutex
by Image ID to protect the Register operation.

We do not completely understand the root cause of this corruption other than
the result is somehow tied to this particular function.  This fix has been
confirmed to address the issue through testing.

Unfortunately, this fix does not address existing corruption. The user will
have to remove and re-pull the corrupt layer to stop the error from happening
in the future. This change only ensures that the layer will not become corrupt.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2015-06-25 20:16:37 -07:00
..
tags add a more accurate error description for invalid tag name 2015-06-03 09:38:39 +08:00
export.go Windows: graph\export.go filepath fixes 2015-05-04 14:56:23 -07:00
graph.go Attempt to protect on disk image store with mutex 2015-06-25 20:16:37 -07:00
graph_test.go Separate graph from image 2015-06-05 18:06:09 -07:00
history.go Update graph walkhistory to pass by value 2015-06-05 18:06:09 -07:00
import.go Refactor pkg/stremformatter with custom constructors instead of passing a boolean 2015-05-13 00:09:41 +02:00
list.go Separate graph from image 2015-06-05 18:06:09 -07:00
load.go Windows: Build load.go 2015-05-12 14:26:57 -07:00
load_unsupported.go Windows: Build load.go 2015-05-12 14:26:57 -07:00
manifest.go Break down loadManifest function into constituent parts 2015-06-01 13:02:50 -07:00
manifest_test.go Update graph to use digest type 2015-06-05 18:07:41 -07:00
mutex.go Attempt to protect on disk image store with mutex 2015-06-25 20:16:37 -07:00
pools_test.go don't call reexec.Init from chrootarchive 2014-11-25 01:03:40 +02:00
pull.go Merge pull request #13575 from mattmoor/consistent-push-fallback 2015-06-17 13:41:58 -07:00
push.go Merge pull request #13575 from mattmoor/consistent-push-fallback 2015-06-17 13:41:58 -07:00
service.go docker-inspect: Extend docker inspect to export image/container metadata related to graph driver 2015-06-15 14:05:10 -04:00
tags.go Windows: Build load.go 2015-05-12 14:26:57 -07:00
tags_unit_test.go Add tests for loadManifest digest verification 2015-05-29 16:30:21 -07:00