Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pushing to registry.exe running in Windows TP5 container panics #1732

Closed
StefanScherer opened this issue May 16, 2016 · 12 comments
Closed

Pushing to registry.exe running in Windows TP5 container panics #1732

StefanScherer opened this issue May 16, 2016 · 12 comments

Comments

@StefanScherer
Copy link

This might be very experimental, but I encounter the following problem running a Docker registry inside a Windows container on a TP5 machine: level=panic msg="runtime error: slice bounds out of range"

My setup of a Docker swarm and local registry can be found here: https://github.com/StefanScherer/docker-windows-box/tree/master/swarm-demo

The registry docker image is built with this Dockerfiles: https://github.com/StefanScherer/dockerfiles-windows/tree/master/registry

I only once had success pushing an image to the registry, but most of the time I get the following error.

PS C:\Users\vagrant> docker logs ea
time="2016-05-16T15:27:43-07:00" level=warning msg="No HTTP secret provided - generated random secret. This may cause problems with uploads if multiple registries are behind a load-balancer. To provide a shared secret, fill in http.secret in the configuration file or set the REGISTRY_HTTP_SECRET environment variable." go.version=go1.6.2 instance.id=2f090ab4-cca7-493b-8e46-d2079d08b26f version="v2.4.0+unknown"
time="2016-05-16T15:27:43-07:00" level=info msg="redis not configured" go.version=go1.6.2 instance.id=2f090ab4-cca7-493b-8e46-d2079d08b26f version="v2.4.0+unknown"
time="2016-05-16T15:27:43-07:00" level=info msg="Starting upload purge in 44m0s" go.version=go1.6.2 instance.id=2f090ab4-cca7-493b-8e46-d2079d08b26f version="v2.4.0+unknown"
time="2016-05-16T15:27:43-07:00" level=info msg="using inmemory blob descriptor cache" go.version=go1.6.2 instance.id=2f090ab4-cca7-493b-8e46-d2079d08b26f version="v2.4.0+unknown"
time="2016-05-16T15:27:43-07:00" level=info msg="listening on [::]:5000" go.version=go1.6.2 instance.id=2f090ab4-cca7-493b-8e46-d2079d08b26f version="v2.4.0+unknown"
time="2016-05-16T15:31:27-07:00" level=info msg="response completed" go.version=go1.6.2 http.request.host="registry:5000" http.request.id=8ff31f36-6b64-482a-80a0-6302e323e64f http.request.method=GET http.request.remoteaddr="192.168.254.1:51069" http.request.uri="/v2/" http.request.useragent="docker/1.12.0-dev go/go1.5.3 git-commit/2b97201 os/windows arch/amd64 UpstreamClient(Docker-Client/1.12.0-dev \\(windows\\))" http.response.contenttype="application/json; charset=utf-8" http.response.duration=5.0491ms http.response.status=200 http.response.written=2 instance.id=2f090ab4-cca7-493b-8e46-d2079d08b26f version="v2.4.0+unknown"
192.168.254.1 - - [16/May/2016:15:31:27 -0700] "GET /v2/ HTTP/1.1" 200 2 "" "docker/1.12.0-dev go/go1.5.3 git-commit/2b97201 os/windows arch/amd64 UpstreamClient(Docker-Client/1.12.0-dev \\(windows\\))"
time="2016-05-16T15:31:27-07:00" level=panic msg="runtime error: slice bounds out of range"
2016/05/16 15:31:27 http: panic serving 192.168.254.1:51074: &{0xc0820b83c0 map[] 2016-05-16 15:31:27.383658 -0700 PDT panic runtime error: slice bounds out of range}
goroutine 29 [running]:
net/http.(*conn).serve.func1(0xc082117280)
        C:/Go/src/net/http/server.go:1389 +0xc8
panic(0xd3d1a0, 0xc0820b80c0)
        C:/Go/src/runtime/panic.go:443 +0x4f7
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.(*Entry).log(0xc0820b80c0, 0x0, 0xc082398d50, 0x28)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/entry.go:103 +0x616
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.(*Entry).Panic(0xc0820b80c0, 0xc0821b5dd0, 0x1, 0x1)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/entry.go:148 +0x83
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.(*Logger).Panic(0xc0820b83c0, 0xc0821b5dd0, 0x1, 0x1)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/logger.go:155 +0xf4
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.Panic(0xc0821b5dd0, 0x1, 0x1)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/exported.go:102 +0x48
github.com/docker/distribution/registry.panicHandler.func1.1()
        C:/Go/src/github.com/docker/distribution/registry/registry.go:277 +0x1a8
panic(0xc43920, 0xc08201e010)
        C:/Go/src/runtime/panic.go:443 +0x4f7
syscall.Readlink(0xc08216f0a0, 0x9, 0xc0822af500, 0x80, 0x80, 0x0, 0x0, 0x0)
        C:/Go/src/syscall/syscall_windows.go:1031 +0x4e9
os.Readlink(0xc08216f0a0, 0x9, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/os/file_posix.go:21 +0xc4
os.Stat(0xc08216f0a0, 0x9, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/os/stat_windows.go:62 +0x116
os.MkdirAll(0xc08216f0a0, 0x9, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:21 +0x56
os.MkdirAll(0xc08216f0a0, 0x10, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc08216f0a0, 0x19, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc08216f0a0, 0x1c, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc08216f0a0, 0x29, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc08216f0a0, 0x2f, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc08216f0a0, 0x38, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc08216f0a0, 0x5d, 0xc0000001ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
github.com/docker/distribution/registry/storage/driver/filesystem.(*driver).Writer(0xc0823771d0, 0x19757e0, 0xc08216eee0, 0xc08225ce40, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/driver/filesystem/driver.go:138 +0xd0
github.com/docker/distribution/registry/storage/driver/filesystem.(*driver).PutContent(0xc0823771d0, 0x19757e0, 0xc08216eee0, 0xc08225ce40, 0x5e, 0xc0821f30a0, 0x14, 0x20, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/driver/filesystem/driver.go:98 +0x82
github.com/docker/distribution/registry/storage/driver/base.(*Base).PutContent(0xc0823771e0, 0x19757e0, 0xc08216eee0, 0xc08225ce40, 0x5e, 0xc0821f30a0, 0x14, 0x20, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/driver/base/base.go:102 +0x3ef
github.com/docker/distribution/registry/storage.(*linkedBlobStore).Create(0xc0822af300, 0x1977a68, 0xc08216ee00, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/linkedblobstore.go:178 +0x9da
github.com/docker/distribution/notifications.(*blobServiceListener).Create(0xc0821f2f60, 0x1977a68, 0xc08216ee00, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/notifications/listener.go:168 +0xe4
github.com/docker/distribution/registry/handlers.(*blobUploadHandler).StartBlobUpload(0xc08216ee00, 0x1a70c20, 0xc082266000, 0xc08243a540)
        C:/Go/src/github.com/docker/distribution/registry/handlers/blobupload.go:121 +0x2b2
github.com/docker/distribution/registry/handlers.(*blobUploadHandler).StartBlobUpload-fm(0x1a70c20, 0xc082266000, 0xc08243a540)
        C:/Go/src/github.com/docker/distribution/registry/handlers/blobupload.go:32 +0x45
net/http.HandlerFunc.ServeHTTP(0xc082271d40, 0x1a70c20, 0xc082266000, 0xc08243a540)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/vendor/github.com/gorilla/handlers.MethodHandler.ServeHTTP(0xc0823987b0, 0x1a70c20, 0xc082266000, 0xc08243a540)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/gorilla/handlers/handlers.go:35 +0xb9
github.com/docker/distribution/registry/handlers.(*App).dispatcher.func1(0x1a70c20, 0xc082266000, 0xc08243a540)
        C:/Go/src/github.com/docker/distribution/registry/handlers/app.go:662 +0x253b
net/http.HandlerFunc.ServeHTTP(0xc082345760, 0x1a70c20, 0xc082266000, 0xc08243a540)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/vendor/github.com/gorilla/mux.(*Router).ServeHTTP(0xc082266eb0, 0x1a70c20, 0xc082266000, 0xc08243a540)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/gorilla/mux/mux.go:98 +0x2a5
github.com/docker/distribution/registry/handlers.(*App).ServeHTTP(0xc0823130e0, 0x1a70c20, 0xc082266000, 0xc08243a540)
        C:/Go/src/github.com/docker/distribution/registry/handlers/app.go:582 +0x315
github.com/docker/distribution/registry.alive.func1(0x1a70b00, 0xc0822f2390, 0xc08243a540)
        C:/Go/src/github.com/docker/distribution/registry/registry.go:297 +0x138
net/http.HandlerFunc.ServeHTTP(0xc082050d80, 0x1a70b00, 0xc0822f2390, 0xc08243a540)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/health.Handler.func1(0x1a70b00, 0xc0822f2390, 0xc08243a540)
        C:/Go/src/github.com/docker/distribution/health/health.go:271 +0x1a1
net/http.HandlerFunc.ServeHTTP(0xc082007260, 0x1a70b00, 0xc0822f2390, 0xc08243a540)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/registry.panicHandler.func1(0x1a70b00, 0xc0822f2390, 0xc08243a540)
        C:/Go/src/github.com/docker/distribution/registry/registry.go:280 +0x7e
net/http.HandlerFunc.ServeHTTP(0xc082007280, 0x1a70b00, 0xc0822f2390, 0xc08243a540)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/vendor/github.com/gorilla/handlers.combinedLoggingHandler.ServeHTTP(0x1974218, 0xc08201a010, 0x1a64588, 0xc082007280, 0x1a70960, 0xc082108270, 0xc08243a540)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/gorilla/handlers/handlers.go:75 +0x128
github.com/docker/distribution/vendor/github.com/gorilla/handlers.(*combinedLoggingHandler).ServeHTTP(0xc0820072a0, 0x1a70960, 0xc082108270, 0xc08243a540)
        <autogenerated>:14 +0xbb
net/http.serverHandler.ServeHTTP(0xc0820a6180, 0x1a70960, 0xc082108270, 0xc08243a540)
        C:/Go/src/net/http/server.go:2081 +0x1a5
net/http.(*conn).serve(0xc082117280)
        C:/Go/src/net/http/server.go:1472 +0xf35
created by net/http.(*Server).Serve
        C:/Go/src/net/http/server.go:2137 +0x455
2016/05/16 15:31:27 http: panic serving 192.168.254.1:51073: &{0xc0820b83c0 map[] 2016-05-16 15:31:27.3886327 -0700 PDT panic runtime error: slice bounds out of range}
goroutine 28 [running]:
net/http.(*conn).serve.func1(0xc082117200)
        C:/Go/src/net/http/server.go:1389 +0xc8
panic(0xd3d1a0, 0xc0823ccd00)
        C:/Go/src/runtime/panic.go:443 +0x4f7
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.(*Entry).log(0xc0823ccd00, 0x0, 0xc0820514d0, 0x28)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/entry.go:103 +0x616
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.(*Entry).Panic(0xc0823ccd00, 0xc082421dd0, 0x1, 0x1)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/entry.go:148 +0x83
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.(*Logger).Panic(0xc0820b83c0, 0xc082421dd0, 0x1, 0x1)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/logger.go:155 +0xf4
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.Panic(0xc082421dd0, 0x1, 0x1)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/exported.go:102 +0x48
github.com/docker/distribution/registry.panicHandler.func1.1()
        C:/Go/src/github.com/docker/distribution/registry/registry.go:277 +0x1a8
panic(0xc43920, 0xc08201e010)
        C:/Go/src/runtime/panic.go:443 +0x4f7
syscall.Readlink(0xc08224d2d0, 0x9, 0xc0820a6780, 0x80, 0x80, 0x0, 0x0, 0x0)
        C:/Go/src/syscall/syscall_windows.go:1031 +0x4e9
os.Readlink(0xc08224d2d0, 0x9, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/os/file_posix.go:21 +0xc4
os.Stat(0xc08224d2d0, 0x9, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/os/stat_windows.go:62 +0x116
os.MkdirAll(0xc08224d2d0, 0x9, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:21 +0x56
os.MkdirAll(0xc08224d2d0, 0x10, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc08224d2d0, 0x19, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc08224d2d0, 0x1c, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc08224d2d0, 0x29, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc08224d2d0, 0x2f, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc08224d2d0, 0x38, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc08224d2d0, 0x5d, 0xc0000001ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
github.com/docker/distribution/registry/storage/driver/filesystem.(*driver).Writer(0xc0823771d0, 0x19757e0, 0xc08224d110, 0xc082316060, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/driver/filesystem/driver.go:138 +0xd0
github.com/docker/distribution/registry/storage/driver/filesystem.(*driver).PutContent(0xc0823771d0, 0x19757e0, 0xc08224d110, 0xc082316060, 0x5e, 0xc0820fd940, 0x14, 0x20, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/driver/filesystem/driver.go:98 +0x82
github.com/docker/distribution/registry/storage/driver/base.(*Base).PutContent(0xc0823771e0, 0x19757e0, 0xc08224d110, 0xc082316060, 0x5e, 0xc0820fd940, 0x14, 0x20, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/driver/base/base.go:102 +0x3ef
github.com/docker/distribution/registry/storage.(*linkedBlobStore).Create(0xc0820a6580, 0x1977a68, 0xc08224d030, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/linkedblobstore.go:178 +0x9da
github.com/docker/distribution/notifications.(*blobServiceListener).Create(0xc0820fd6c0, 0x1977a68, 0xc08224d030, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/notifications/listener.go:168 +0xe4
github.com/docker/distribution/registry/handlers.(*blobUploadHandler).StartBlobUpload(0xc08224d030, 0x1a70c20, 0xc082266be0, 0xc08243a380)
        C:/Go/src/github.com/docker/distribution/registry/handlers/blobupload.go:121 +0x2b2
github.com/docker/distribution/registry/handlers.(*blobUploadHandler).StartBlobUpload-fm(0x1a70c20, 0xc082266be0, 0xc08243a380)
        C:/Go/src/github.com/docker/distribution/registry/handlers/blobupload.go:32 +0x45
net/http.HandlerFunc.ServeHTTP(0xc0820b6020, 0x1a70c20, 0xc082266be0, 0xc08243a380)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/vendor/github.com/gorilla/handlers.MethodHandler.ServeHTTP(0xc082050fc0, 0x1a70c20, 0xc082266be0, 0xc08243a380)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/gorilla/handlers/handlers.go:35 +0xb9
github.com/docker/distribution/registry/handlers.(*App).dispatcher.func1(0x1a70c20, 0xc082266be0, 0xc08243a380)
        C:/Go/src/github.com/docker/distribution/registry/handlers/app.go:662 +0x253b
net/http.HandlerFunc.ServeHTTP(0xc082345760, 0x1a70c20, 0xc082266be0, 0xc08243a380)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/vendor/github.com/gorilla/mux.(*Router).ServeHTTP(0xc082266eb0, 0x1a70c20, 0xc082266be0, 0xc08243a380)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/gorilla/mux/mux.go:98 +0x2a5
github.com/docker/distribution/registry/handlers.(*App).ServeHTTP(0xc0823130e0, 0x1a70c20, 0xc082266be0, 0xc08243a380)
        C:/Go/src/github.com/docker/distribution/registry/handlers/app.go:582 +0x315
github.com/docker/distribution/registry.alive.func1(0x1a70b00, 0xc082399230, 0xc08243a380)
        C:/Go/src/github.com/docker/distribution/registry/registry.go:297 +0x138
net/http.HandlerFunc.ServeHTTP(0xc082050d80, 0x1a70b00, 0xc082399230, 0xc08243a380)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/health.Handler.func1(0x1a70b00, 0xc082399230, 0xc08243a380)
        C:/Go/src/github.com/docker/distribution/health/health.go:271 +0x1a1
net/http.HandlerFunc.ServeHTTP(0xc082007260, 0x1a70b00, 0xc082399230, 0xc08243a380)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/registry.panicHandler.func1(0x1a70b00, 0xc082399230, 0xc08243a380)
        C:/Go/src/github.com/docker/distribution/registry/registry.go:280 +0x7e
net/http.HandlerFunc.ServeHTTP(0xc082007280, 0x1a70b00, 0xc082399230, 0xc08243a380)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/vendor/github.com/gorilla/handlers.combinedLoggingHandler.ServeHTTP(0x1974218, 0xc08201a010, 0x1a64588, 0xc082007280, 0x1a70960, 0xc082108820, 0xc08243a380)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/gorilla/handlers/handlers.go:75 +0x128
github.com/docker/distribution/vendor/github.com/gorilla/handlers.(*combinedLoggingHandler).ServeHTTP(0xc0820072a0, 0x1a70960, 0xc082108820, 0xc08243a380)
        <autogenerated>:14 +0xbb
net/http.serverHandler.ServeHTTP(0xc0820a6180, 0x1a70960, 0xc082108820, 0xc08243a380)
        C:/Go/src/net/http/server.go:2081 +0x1a5
net/http.(*conn).serve(0xc082117200)
        C:/Go/src/net/http/server.go:1472 +0xf35
created by net/http.(*Server).Serve
        C:/Go/src/net/http/server.go:2137 +0x455
time="2016-05-16T15:31:27-07:00" level=panic msg="runtime error: slice bounds out of range"
time="2016-05-16T15:31:27-07:00" level=panic msg="runtime error: slice bounds out of range"
2016/05/16 15:31:27 http: panic serving 192.168.254.1:51071: &{0xc0820b83c0 map[] 2016-05-16 15:31:27.3886327 -0700 PDT panic runtime error: slice bounds out of range}
goroutine 26 [running]:
net/http.(*conn).serve.func1(0xc082117100)
        C:/Go/src/net/http/server.go:1389 +0xc8
panic(0xd3d1a0, 0xc082005780)
        C:/Go/src/runtime/panic.go:443 +0x4f7
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.(*Entry).log(0xc082005780, 0x0, 0xc0824c4c90, 0x28)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/entry.go:103 +0x616
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.(*Entry).Panic(0xc082005780, 0xc08252bde0, 0x1, 0x1)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/entry.go:148 +0x83
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.(*Logger).Panic(0xc0820b83c0, 0xc08252bde0, 0x1, 0x1)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/logger.go:155 +0xf4
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.Panic(0xc08252bde0, 0x1, 0x1)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/exported.go:102 +0x48
github.com/docker/distribution/registry.panicHandler.func1.1()
        C:/Go/src/github.com/docker/distribution/registry/registry.go:277 +0x1a8
panic(0xc43920, 0xc08201e010)
        C:/Go/src/runtime/panic.go:443 +0x4f7
syscall.Readlink(0xc0824ec5b0, 0x9, 0xc0824ee280, 0x80, 0x80, 0x0, 0x0, 0x0)
        C:/Go/src/syscall/syscall_windows.go:1031 +0x4e9
os.Readlink(0xc0824ec5b0, 0x9, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/os/file_posix.go:21 +0xc4
os.Stat(0xc0824ec5b0, 0x9, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/os/stat_windows.go:62 +0x116
os.MkdirAll(0xc0824ec5b0, 0x9, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:21 +0x56
os.MkdirAll(0xc0824ec5b0, 0x10, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc0824ec5b0, 0x19, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc0824ec5b0, 0x1c, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc0824ec5b0, 0x29, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc0824ec5b0, 0x2f, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc0824ec5b0, 0x38, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc0824ec5b0, 0x5d, 0xc0000001ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
github.com/docker/distribution/registry/storage/driver/filesystem.(*driver).Writer(0xc0823771d0, 0x19757e0, 0xc0824ec3f0, 0xc082107680, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/driver/filesystem/driver.go:138 +0xd0
github.com/docker/distribution/registry/storage/driver/filesystem.(*driver).PutContent(0xc0823771d0, 0x19757e0, 0xc0824ec3f0, 0xc082107680, 0x5e, 0xc082007a00, 0x14, 0x20, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/driver/filesystem/driver.go:98 +0x82
github.com/docker/distribution/registry/storage/driver/base.(*Base).PutContent(0xc0823771e0, 0x19757e0, 0xc0824ec3f0, 0xc082107680, 0x5e, 0xc082007a00, 0x14, 0x20, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/driver/base/base.go:102 +0x3ef
github.com/docker/distribution/registry/storage.(*linkedBlobStore).Create(0xc0824ee080, 0x1977a68, 0xc0824ec310, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/linkedblobstore.go:178 +0x9da
github.com/docker/distribution/notifications.(*blobServiceListener).Create(0xc0820078c0, 0x1977a68, 0xc0824ec310, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/notifications/listener.go:168 +0xe4
github.com/docker/distribution/registry/handlers.(*blobUploadHandler).StartBlobUpload(0xc0824ec310, 0x1a70c20, 0xc0820bcb40, 0xc082115ea0)
        C:/Go/src/github.com/docker/distribution/registry/handlers/blobupload.go:121 +0x2b2
github.com/docker/distribution/registry/handlers.(*blobUploadHandler).StartBlobUpload-fm(0x1a70c20, 0xc0820bcb40, 0xc082115ea0)
        C:/Go/src/github.com/docker/distribution/registry/handlers/blobupload.go:32 +0x45
net/http.HandlerFunc.ServeHTTP(0xc08201e6a0, 0x1a70c20, 0xc0820bcb40, 0xc082115ea0)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/vendor/github.com/gorilla/handlers.MethodHandler.ServeHTTP(0xc0824c4780, 0x1a70c20, 0xc0820bcb40, 0xc082115ea0)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/gorilla/handlers/handlers.go:35 +0xb9
github.com/docker/distribution/registry/handlers.(*App).dispatcher.func1(0x1a70c20, 0xc0820bcb40, 0xc082115ea0)
        C:/Go/src/github.com/docker/distribution/registry/handlers/app.go:662 +0x253b
net/http.HandlerFunc.ServeHTTP(0xc082345760, 0x1a70c20, 0xc0820bcb40, 0xc082115ea0)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/vendor/github.com/gorilla/mux.(*Router).ServeHTTP(0xc082266eb0, 0x1a70c20, 0xc0820bcb40, 0xc082115ea0)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/gorilla/mux/mux.go:98 +0x2a5
github.com/docker/distribution/registry/handlers.(*App).ServeHTTP(0xc0823130e0, 0x1a70c20, 0xc0820bcb40, 0xc082115ea0)
        C:/Go/src/github.com/docker/distribution/registry/handlers/app.go:582 +0x315
github.com/docker/distribution/registry.alive.func1(0x1a70b00, 0xc0820bef90, 0xc082115ea0)
        C:/Go/src/github.com/docker/distribution/registry/registry.go:297 +0x138
net/http.HandlerFunc.ServeHTTP(0xc082050d80, 0x1a70b00, 0xc0820bef90, 0xc082115ea0)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/health.Handler.func1(0x1a70b00, 0xc0820bef90, 0xc082115ea0)
        C:/Go/src/github.com/docker/distribution/health/health.go:271 +0x1a1
net/http.HandlerFunc.ServeHTTP(0xc082007260, 0x1a70b00, 0xc0820bef90, 0xc082115ea0)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/registry.panicHandler.func1(0x1a70b00, 0xc0820bef90, 0xc082115ea0)
        C:/Go/src/github.com/docker/distribution/registry/registry.go:280 +0x7e
net/http.HandlerFunc.ServeHTTP(0xc082007280, 0x1a70b00, 0xc0820bef90, 0xc082115ea0)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/vendor/github.com/gorilla/handlers.combinedLoggingHandler.ServeHTTP(0x1974218, 0xc08201a010, 0x1a64588, 0xc082007280, 0x1a70960, 0xc08202a410, 0xc082115ea0)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/gorilla/handlers/handlers.go:75 +0x128
github.com/docker/distribution/vendor/github.com/gorilla/handlers.(*combinedLoggingHandler).ServeHTTP(0xc0820072a0, 0x1a70960, 0xc08202a410, 0xc082115ea0)
        <autogenerated>:14 +0xbb
net/http.serverHandler.ServeHTTP(0xc0820a6180, 0x1a70960, 0xc08202a410, 0xc082115ea0)
        C:/Go/src/net/http/server.go:2081 +0x1a5
net/http.(*conn).serve(0xc082117100)
        C:/Go/src/net/http/server.go:1472 +0xf35
created by net/http.(*Server).Serve
        C:/Go/src/net/http/server.go:2137 +0x455
2016/05/16 15:31:27 http: panic serving 192.168.254.1:51072: &{0xc0820b83c0 map[] 2016-05-16 15:31:27.396647 -0700 PDT panic runtime error: slice bounds out of range}
goroutine 27 [running]:
net/http.(*conn).serve.func1(0xc082117180)
        C:/Go/src/net/http/server.go:1389 +0xc8
panic(0xd3d1a0, 0xc0822db900)
        C:/Go/src/runtime/panic.go:443 +0x4f7
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.(*Entry).log(0xc0822db900, 0x0, 0xc082399650, 0x28)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/entry.go:103 +0x616
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.(*Entry).Panic(0xc0822db900, 0xc0825dddd0, 0x1, 0x1)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/entry.go:148 +0x83
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.(*Logger).Panic(0xc0820b83c0, 0xc0825dddd0, 0x1, 0x1)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/logger.go:155 +0xf4
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.Panic(0xc0825dddd0, 0x1, 0x1)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/exported.go:102 +0x48
github.com/docker/distribution/registry.panicHandler.func1.1()
        C:/Go/src/github.com/docker/distribution/registry/registry.go:277 +0x1a8
panic(0xc43920, 0xc08201e010)
        C:/Go/src/runtime/panic.go:443 +0x4f7
syscall.Readlink(0xc082217420, 0x9, 0xc082116d00, 0x80, 0x80, 0x0, 0x0, 0x0)
        C:/Go/src/syscall/syscall_windows.go:1031 +0x4e9
os.Readlink(0xc082217420, 0x9, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/os/file_posix.go:21 +0xc4
os.Stat(0xc082217420, 0x9, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/os/stat_windows.go:62 +0x116
os.MkdirAll(0xc082217420, 0x9, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:21 +0x56
os.MkdirAll(0xc082217420, 0x10, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc082217420, 0x19, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc082217420, 0x1c, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc082217420, 0x29, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc082217420, 0x2f, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc082217420, 0x38, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc082217420, 0x5d, 0xc0000001ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
github.com/docker/distribution/registry/storage/driver/filesystem.(*driver).Writer(0xc0823771d0, 0x19757e0, 0xc082217260, 0xc08225cc00, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/driver/filesystem/driver.go:138 +0xd0
github.com/docker/distribution/registry/storage/driver/filesystem.(*driver).PutContent(0xc0823771d0, 0x19757e0, 0xc082217260, 0xc08225cc00, 0x5e, 0xc08227edc0, 0x14, 0x20, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/driver/filesystem/driver.go:98 +0x82
github.com/docker/distribution/registry/storage/driver/base.(*Base).PutContent(0xc0823771e0, 0x19757e0, 0xc082217260, 0xc08225cc00, 0x5e, 0xc08227edc0, 0x14, 0x20, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/driver/base/base.go:102 +0x3ef
github.com/docker/distribution/registry/storage.(*linkedBlobStore).Create(0xc082116b00, 0x1977a68, 0xc082217110, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/linkedblobstore.go:178 +0x9da
github.com/docker/distribution/notifications.(*blobServiceListener).Create(0xc08227e700, 0x1977a68, 0xc082217110, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/notifications/listener.go:168 +0xe4
github.com/docker/distribution/registry/handlers.(*blobUploadHandler).StartBlobUpload(0xc082217110, 0x1a70c20, 0xc082267450, 0xc08243a1c0)
        C:/Go/src/github.com/docker/distribution/registry/handlers/blobupload.go:121 +0x2b2
github.com/docker/distribution/registry/handlers.(*blobUploadHandler).StartBlobUpload-fm(0x1a70c20, 0xc082267450, 0xc08243a1c0)
        C:/Go/src/github.com/docker/distribution/registry/handlers/blobupload.go:32 +0x45
net/http.HandlerFunc.ServeHTTP(0xc082321480, 0x1a70c20, 0xc082267450, 0xc08243a1c0)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/vendor/github.com/gorilla/handlers.MethodHandler.ServeHTTP(0xc082399050, 0x1a70c20, 0xc082267450, 0xc08243a1c0)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/gorilla/handlers/handlers.go:35 +0xb9
github.com/docker/distribution/registry/handlers.(*App).dispatcher.func1(0x1a70c20, 0xc082267450, 0xc08243a1c0)
        C:/Go/src/github.com/docker/distribution/registry/handlers/app.go:662 +0x253b
net/http.HandlerFunc.ServeHTTP(0xc082345760, 0x1a70c20, 0xc082267450, 0xc08243a1c0)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/vendor/github.com/gorilla/mux.(*Router).ServeHTTP(0xc082266eb0, 0x1a70c20, 0xc082267450, 0xc08243a1c0)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/gorilla/mux/mux.go:98 +0x2a5
github.com/docker/distribution/registry/handlers.(*App).ServeHTTP(0xc0823130e0, 0x1a70c20, 0xc082267450, 0xc08243a1c0)
        C:/Go/src/github.com/docker/distribution/registry/handlers/app.go:582 +0x315
github.com/docker/distribution/registry.alive.func1(0x1a70b00, 0xc082051620, 0xc08243a1c0)
        C:/Go/src/github.com/docker/distribution/registry/registry.go:297 +0x138
net/http.HandlerFunc.ServeHTTP(0xc082050d80, 0x1a70b00, 0xc082051620, 0xc08243a1c0)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/health.Handler.func1(0x1a70b00, 0xc082051620, 0xc08243a1c0)
        C:/Go/src/github.com/docker/distribution/health/health.go:271 +0x1a1
net/http.HandlerFunc.ServeHTTP(0xc082007260, 0x1a70b00, 0xc082051620, 0xc08243a1c0)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/registry.panicHandler.func1(0x1a70b00, 0xc082051620, 0xc08243a1c0)
        C:/Go/src/github.com/docker/distribution/registry/registry.go:280 +0x7e
net/http.HandlerFunc.ServeHTTP(0xc082007280, 0x1a70b00, 0xc082051620, 0xc08243a1c0)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/vendor/github.com/gorilla/handlers.combinedLoggingHandler.ServeHTTP(0x1974218, 0xc08201a010, 0x1a64588, 0xc082007280, 0x1a70960, 0xc082108d00, 0xc08243a1c0)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/gorilla/handlers/handlers.go:75 +0x128
github.com/docker/distribution/vendor/github.com/gorilla/handlers.(*combinedLoggingHandler).ServeHTTP(0xc0820072a0, 0x1a70960, 0xc082108d00, 0xc08243a1c0)
        <autogenerated>:14 +0xbb
net/http.serverHandler.ServeHTTP(0xc0820a6180, 0x1a70960, 0xc082108d00, 0xc08243a1c0)
        C:/Go/src/net/http/server.go:2081 +0x1a5
net/http.(*conn).serve(0xc082117180)
        C:/Go/src/net/http/server.go:1472 +0xf35
created by net/http.(*Server).Serve
        C:/Go/src/net/http/server.go:2137 +0x455
time="2016-05-16T15:31:27-07:00" level=panic msg="runtime error: slice bounds out of range"
time="2016-05-16T15:31:27-07:00" level=panic msg="runtime error: slice bounds out of range"
2016/05/16 15:31:27 http: panic serving 192.168.254.1:51070: &{0xc0820b83c0 map[] 2016-05-16 15:31:27.396647 -0700 PDT panic runtime error: slice bounds out of range}
goroutine 25 [running]:
net/http.(*conn).serve.func1(0xc082117080)
        C:/Go/src/net/http/server.go:1389 +0xc8
panic(0xd3d1a0, 0xc082252480)
        C:/Go/src/runtime/panic.go:443 +0x4f7
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.(*Entry).log(0xc082252480, 0x0, 0xc0822f3290, 0x28)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/entry.go:103 +0x616
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.(*Entry).Panic(0xc082252480, 0xc082479de0, 0x1, 0x1)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/entry.go:148 +0x83
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.(*Logger).Panic(0xc0820b83c0, 0xc082479de0, 0x1, 0x1)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/logger.go:155 +0xf4
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.Panic(0xc082479de0, 0x1, 0x1)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/exported.go:102 +0x48
github.com/docker/distribution/registry.panicHandler.func1.1()
        C:/Go/src/github.com/docker/distribution/registry/registry.go:277 +0x1a8
panic(0xc43920, 0xc08201e010)
        C:/Go/src/runtime/panic.go:443 +0x4f7
syscall.Readlink(0xc08231dd50, 0x9, 0xc0822aef00, 0x80, 0x80, 0x0, 0x0, 0x0)
        C:/Go/src/syscall/syscall_windows.go:1031 +0x4e9
os.Readlink(0xc08231dd50, 0x9, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/os/file_posix.go:21 +0xc4
os.Stat(0xc08231dd50, 0x9, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/os/stat_windows.go:62 +0x116
os.MkdirAll(0xc08231dd50, 0x9, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:21 +0x56
os.MkdirAll(0xc08231dd50, 0x10, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc08231dd50, 0x19, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc08231dd50, 0x1c, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc08231dd50, 0x29, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc08231dd50, 0x2f, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc08231dd50, 0x38, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc08231dd50, 0x5d, 0xc0000001ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
github.com/docker/distribution/registry/storage/driver/filesystem.(*driver).Writer(0xc0823771d0, 0x19757e0, 0xc08231db90, 0xc082106960, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/driver/filesystem/driver.go:138 +0xd0
github.com/docker/distribution/registry/storage/driver/filesystem.(*driver).PutContent(0xc0823771d0, 0x19757e0, 0xc08231db90, 0xc082106960, 0x5e, 0xc082310560, 0x14, 0x20, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/driver/filesystem/driver.go:98 +0x82
github.com/docker/distribution/registry/storage/driver/base.(*Base).PutContent(0xc0823771e0, 0x19757e0, 0xc08231db90, 0xc082106960, 0x5e, 0xc082310560, 0x14, 0x20, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/driver/base/base.go:102 +0x3ef
github.com/docker/distribution/registry/storage.(*linkedBlobStore).Create(0xc0822aed00, 0x1977a68, 0xc08231dab0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/linkedblobstore.go:178 +0x9da
github.com/docker/distribution/notifications.(*blobServiceListener).Create(0xc082310420, 0x1977a68, 0xc08231dab0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/notifications/listener.go:168 +0xe4
github.com/docker/distribution/registry/handlers.(*blobUploadHandler).StartBlobUpload(0xc08231dab0, 0x1a70c20, 0xc082266b90, 0xc082115ce0)
        C:/Go/src/github.com/docker/distribution/registry/handlers/blobupload.go:121 +0x2b2
github.com/docker/distribution/registry/handlers.(*blobUploadHandler).StartBlobUpload-fm(0x1a70c20, 0xc082266b90, 0xc082115ce0)
        C:/Go/src/github.com/docker/distribution/registry/handlers/blobupload.go:32 +0x45
net/http.HandlerFunc.ServeHTTP(0xc0822d61b0, 0x1a70c20, 0xc082266b90, 0xc082115ce0)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/vendor/github.com/gorilla/handlers.MethodHandler.ServeHTTP(0xc0822f2630, 0x1a70c20, 0xc082266b90, 0xc082115ce0)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/gorilla/handlers/handlers.go:35 +0xb9
github.com/docker/distribution/registry/handlers.(*App).dispatcher.func1(0x1a70c20, 0xc082266b90, 0xc082115ce0)
        C:/Go/src/github.com/docker/distribution/registry/handlers/app.go:662 +0x253b
net/http.HandlerFunc.ServeHTTP(0xc082345760, 0x1a70c20, 0xc082266b90, 0xc082115ce0)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/vendor/github.com/gorilla/mux.(*Router).ServeHTTP(0xc082266eb0, 0x1a70c20, 0xc082266b90, 0xc082115ce0)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/gorilla/mux/mux.go:98 +0x2a5
github.com/docker/distribution/registry/handlers.(*App).ServeHTTP(0xc0823130e0, 0x1a70c20, 0xc082266b90, 0xc082115ce0)
        C:/Go/src/github.com/docker/distribution/registry/handlers/app.go:582 +0x315
github.com/docker/distribution/registry.alive.func1(0x1a70b00, 0xc082398ea0, 0xc082115ce0)
        C:/Go/src/github.com/docker/distribution/registry/registry.go:297 +0x138
net/http.HandlerFunc.ServeHTTP(0xc082050d80, 0x1a70b00, 0xc082398ea0, 0xc082115ce0)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/health.Handler.func1(0x1a70b00, 0xc082398ea0, 0xc082115ce0)
        C:/Go/src/github.com/docker/distribution/health/health.go:271 +0x1a1
net/http.HandlerFunc.ServeHTTP(0xc082007260, 0x1a70b00, 0xc082398ea0, 0xc082115ce0)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/registry.panicHandler.func1(0x1a70b00, 0xc082398ea0, 0xc082115ce0)
        C:/Go/src/github.com/docker/distribution/registry/registry.go:280 +0x7e
net/http.HandlerFunc.ServeHTTP(0xc082007280, 0x1a70b00, 0xc082398ea0, 0xc082115ce0)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/vendor/github.com/gorilla/handlers.combinedLoggingHandler.ServeHTTP(0x1974218, 0xc08201a010, 0x1a64588, 0xc082007280, 0x1a70960, 0xc082108680, 0xc082115ce0)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/gorilla/handlers/handlers.go:75 +0x128
github.com/docker/distribution/vendor/github.com/gorilla/handlers.(*combinedLoggingHandler).ServeHTTP(0xc0820072a0, 0x1a70960, 0xc082108680, 0xc082115ce0)
        <autogenerated>:14 +0xbb
net/http.serverHandler.ServeHTTP(0xc0820a6180, 0x1a70960, 0xc082108680, 0xc082115ce0)
        C:/Go/src/net/http/server.go:2081 +0x1a5
net/http.(*conn).serve(0xc082117080)
        C:/Go/src/net/http/server.go:1472 +0xf35
created by net/http.(*Server).Serve
        C:/Go/src/net/http/server.go:2137 +0x455
time="2016-05-16T15:31:32-07:00" level=panic msg="runtime error: slice bounds out of range"
2016/05/16 15:31:32 http: panic serving 192.168.254.1:51075: &{0xc0820b83c0 map[] 2016-05-16 15:31:32.3925475 -0700 PDT panic runtime error: slice bounds out of range}
goroutine 30 [running]:
net/http.(*conn).serve.func1(0xc0822aef80)
        C:/Go/src/net/http/server.go:1389 +0xc8
panic(0xd3d1a0, 0xc0820049c0)
        C:/Go/src/runtime/panic.go:443 +0x4f7
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.(*Entry).log(0xc0820049c0, 0x0, 0xc082157920, 0x28)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/entry.go:103 +0x616
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.(*Entry).Panic(0xc0820049c0, 0xc082499dd0, 0x1, 0x1)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/entry.go:148 +0x83
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.(*Logger).Panic(0xc0820b83c0, 0xc082499dd0, 0x1, 0x1)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/logger.go:155 +0xf4
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.Panic(0xc082499dd0, 0x1, 0x1)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/exported.go:102 +0x48
github.com/docker/distribution/registry.panicHandler.func1.1()
        C:/Go/src/github.com/docker/distribution/registry/registry.go:277 +0x1a8
panic(0xc43920, 0xc08201e010)
        C:/Go/src/runtime/panic.go:443 +0x4f7
syscall.Readlink(0xc08221af50, 0x9, 0xc0824ee100, 0x80, 0x80, 0x0, 0x0, 0x0)
        C:/Go/src/syscall/syscall_windows.go:1031 +0x4e9
os.Readlink(0xc08221af50, 0x9, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/os/file_posix.go:21 +0xc4
os.Stat(0xc08221af50, 0x9, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/os/stat_windows.go:62 +0x116
os.MkdirAll(0xc08221af50, 0x9, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:21 +0x56
os.MkdirAll(0xc08221af50, 0x10, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc08221af50, 0x19, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc08221af50, 0x1c, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc08221af50, 0x29, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc08221af50, 0x2f, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc08221af50, 0x38, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc08221af50, 0x5d, 0xc0000001ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
github.com/docker/distribution/registry/storage/driver/filesystem.(*driver).Writer(0xc0823771d0, 0x19757e0, 0xc08221ad90, 0xc082107f20, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/driver/filesystem/driver.go:138 +0xd0
github.com/docker/distribution/registry/storage/driver/filesystem.(*driver).PutContent(0xc0823771d0, 0x19757e0, 0xc08221ad90, 0xc082107f20, 0x5e, 0xc0821f31e0, 0x14, 0x20, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/driver/filesystem/driver.go:98 +0x82
github.com/docker/distribution/registry/storage/driver/base.(*Base).PutContent(0xc0823771e0, 0x19757e0, 0xc08221ad90, 0xc082107f20, 0x5e, 0xc0821f31e0, 0x14, 0x20, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/driver/base/base.go:102 +0x3ef
github.com/docker/distribution/registry/storage.(*linkedBlobStore).Create(0xc0822afe80, 0x1977a68, 0xc08221acb0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/linkedblobstore.go:178 +0x9da
github.com/docker/distribution/notifications.(*blobServiceListener).Create(0xc0821f3080, 0x1977a68, 0xc08221acb0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/notifications/listener.go:168 +0xe4
github.com/docker/distribution/registry/handlers.(*blobUploadHandler).StartBlobUpload(0xc08221acb0, 0x1a70c20, 0xc0820bc870, 0xc08243aee0)
        C:/Go/src/github.com/docker/distribution/registry/handlers/blobupload.go:121 +0x2b2
github.com/docker/distribution/registry/handlers.(*blobUploadHandler).StartBlobUpload-fm(0x1a70c20, 0xc0820bc870, 0xc08243aee0)
        C:/Go/src/github.com/docker/distribution/registry/handlers/blobupload.go:32 +0x45
net/http.HandlerFunc.ServeHTTP(0xc0821fcc80, 0x1a70c20, 0xc0820bc870, 0xc08243aee0)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/vendor/github.com/gorilla/handlers.MethodHandler.ServeHTTP(0xc0821e6f00, 0x1a70c20, 0xc0820bc870, 0xc08243aee0)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/gorilla/handlers/handlers.go:35 +0xb9
github.com/docker/distribution/registry/handlers.(*App).dispatcher.func1(0x1a70c20, 0xc0820bc870, 0xc08243aee0)
        C:/Go/src/github.com/docker/distribution/registry/handlers/app.go:662 +0x253b
net/http.HandlerFunc.ServeHTTP(0xc082345760, 0x1a70c20, 0xc0820bc870, 0xc08243aee0)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/vendor/github.com/gorilla/mux.(*Router).ServeHTTP(0xc082266eb0, 0x1a70c20, 0xc0820bc870, 0xc08243aee0)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/gorilla/mux/mux.go:98 +0x2a5
github.com/docker/distribution/registry/handlers.(*App).ServeHTTP(0xc0823130e0, 0x1a70c20, 0xc0820bc870, 0xc08243aee0)
        C:/Go/src/github.com/docker/distribution/registry/handlers/app.go:582 +0x315
github.com/docker/distribution/registry.alive.func1(0x1a70b00, 0xc0822f3620, 0xc08243aee0)
        C:/Go/src/github.com/docker/distribution/registry/registry.go:297 +0x138
net/http.HandlerFunc.ServeHTTP(0xc082050d80, 0x1a70b00, 0xc0822f3620, 0xc08243aee0)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/health.Handler.func1(0x1a70b00, 0xc0822f3620, 0xc08243aee0)
        C:/Go/src/github.com/docker/distribution/health/health.go:271 +0x1a1
net/http.HandlerFunc.ServeHTTP(0xc082007260, 0x1a70b00, 0xc0822f3620, 0xc08243aee0)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/registry.panicHandler.func1(0x1a70b00, 0xc0822f3620, 0xc08243aee0)
        C:/Go/src/github.com/docker/distribution/registry/registry.go:280 +0x7e
net/http.HandlerFunc.ServeHTTP(0xc082007280, 0x1a70b00, 0xc0822f3620, 0xc08243aee0)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/vendor/github.com/gorilla/handlers.combinedLoggingHandler.ServeHTTP(0x1974218, 0xc08201a010, 0x1a64588, 0xc082007280, 0x1a70960, 0xc08202a270, 0xc08243aee0)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/gorilla/handlers/handlers.go:75 +0x128
github.com/docker/distribution/vendor/github.com/gorilla/handlers.(*combinedLoggingHandler).ServeHTTP(0xc0820072a0, 0x1a70960, 0xc08202a270, 0xc08243aee0)
        <autogenerated>:14 +0xbb
net/http.serverHandler.ServeHTTP(0xc0820a6180, 0x1a70960, 0xc08202a270, 0xc08243aee0)
        C:/Go/src/net/http/server.go:2081 +0x1a5
net/http.(*conn).serve(0xc0822aef80)
        C:/Go/src/net/http/server.go:1472 +0xf35
created by net/http.(*Server).Serve
        C:/Go/src/net/http/server.go:2137 +0x455
time="2016-05-16T15:31:32-07:00" level=panic msg="runtime error: slice bounds out of range"
2016/05/16 15:31:32 http: panic serving 192.168.254.1:51076: &{0xc0820b83c0 map[] 2016-05-16 15:31:32.3975471 -0700 PDT panic runtime error: slice bounds out of range}
goroutine 7 [running]:
net/http.(*conn).serve.func1(0xc082116d80)
        C:/Go/src/net/http/server.go:1389 +0xc8
panic(0xd3d1a0, 0xc082005ac0)
        C:/Go/src/runtime/panic.go:443 +0x4f7
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.(*Entry).log(0xc082005ac0, 0x0, 0xc0822f32c0, 0x28)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/entry.go:103 +0x616
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.(*Entry).Panic(0xc082005ac0, 0xc0824b9de0, 0x1, 0x1)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/entry.go:148 +0x83
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.(*Logger).Panic(0xc0820b83c0, 0xc0824b9de0, 0x1, 0x1)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/logger.go:155 +0xf4
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.Panic(0xc0824b9de0, 0x1, 0x1)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/exported.go:102 +0x48
github.com/docker/distribution/registry.panicHandler.func1.1()
        C:/Go/src/github.com/docker/distribution/registry/registry.go:277 +0x1a8
panic(0xc43920, 0xc08201e010)
        C:/Go/src/runtime/panic.go:443 +0x4f7
syscall.Readlink(0xc0822f12d0, 0x9, 0xc0824ee880, 0x80, 0x80, 0x0, 0x0, 0x0)
        C:/Go/src/syscall/syscall_windows.go:1031 +0x4e9
os.Readlink(0xc0822f12d0, 0x9, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/os/file_posix.go:21 +0xc4
os.Stat(0xc0822f12d0, 0x9, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/os/stat_windows.go:62 +0x116
os.MkdirAll(0xc0822f12d0, 0x9, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:21 +0x56
os.MkdirAll(0xc0822f12d0, 0x10, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc0822f12d0, 0x19, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc0822f12d0, 0x1c, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc0822f12d0, 0x29, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc0822f12d0, 0x2f, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc0822f12d0, 0x38, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc0822f12d0, 0x5d, 0xc0000001ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
github.com/docker/distribution/registry/storage/driver/filesystem.(*driver).Writer(0xc0823771d0, 0x19757e0, 0xc0822f1110, 0xc082317e00, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/driver/filesystem/driver.go:138 +0xd0
github.com/docker/distribution/registry/storage/driver/filesystem.(*driver).PutContent(0xc0823771d0, 0x19757e0, 0xc0822f1110, 0xc082317e00, 0x5e, 0xc0821f32e0, 0x14, 0x20, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/driver/filesystem/driver.go:98 +0x82
github.com/docker/distribution/registry/storage/driver/base.(*Base).PutContent(0xc0823771e0, 0x19757e0, 0xc0822f1110, 0xc082317e00, 0x5e, 0xc0821f32e0, 0x14, 0x20, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/driver/base/base.go:102 +0x3ef
github.com/docker/distribution/registry/storage.(*linkedBlobStore).Create(0xc0824ee700, 0x1977a68, 0xc0822f1030, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/linkedblobstore.go:178 +0x9da
github.com/docker/distribution/notifications.(*blobServiceListener).Create(0xc0821f3160, 0x1977a68, 0xc0822f1030, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/notifications/listener.go:168 +0xe4
github.com/docker/distribution/registry/handlers.(*blobUploadHandler).StartBlobUpload(0xc0822f1030, 0x1a70c20, 0xc0822669b0, 0xc082115500)
        C:/Go/src/github.com/docker/distribution/registry/handlers/blobupload.go:121 +0x2b2
github.com/docker/distribution/registry/handlers.(*blobUploadHandler).StartBlobUpload-fm(0x1a70c20, 0xc0822669b0, 0xc082115500)
        C:/Go/src/github.com/docker/distribution/registry/handlers/blobupload.go:32 +0x45
net/http.HandlerFunc.ServeHTTP(0xc0821fd4e0, 0x1a70c20, 0xc0822669b0, 0xc082115500)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/vendor/github.com/gorilla/handlers.MethodHandler.ServeHTTP(0xc0822f2780, 0x1a70c20, 0xc0822669b0, 0xc082115500)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/gorilla/handlers/handlers.go:35 +0xb9
github.com/docker/distribution/registry/handlers.(*App).dispatcher.func1(0x1a70c20, 0xc0822669b0, 0xc082115500)
        C:/Go/src/github.com/docker/distribution/registry/handlers/app.go:662 +0x253b
net/http.HandlerFunc.ServeHTTP(0xc082345760, 0x1a70c20, 0xc0822669b0, 0xc082115500)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/vendor/github.com/gorilla/mux.(*Router).ServeHTTP(0xc082266eb0, 0x1a70c20, 0xc0822669b0, 0xc082115500)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/gorilla/mux/mux.go:98 +0x2a5
github.com/docker/distribution/registry/handlers.(*App).ServeHTTP(0xc0823130e0, 0x1a70c20, 0xc0822669b0, 0xc082115500)
        C:/Go/src/github.com/docker/distribution/registry/handlers/app.go:582 +0x315
github.com/docker/distribution/registry.alive.func1(0x1a70b00, 0xc082399830, 0xc082115500)
        C:/Go/src/github.com/docker/distribution/registry/registry.go:297 +0x138
net/http.HandlerFunc.ServeHTTP(0xc082050d80, 0x1a70b00, 0xc082399830, 0xc082115500)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/health.Handler.func1(0x1a70b00, 0xc082399830, 0xc082115500)
        C:/Go/src/github.com/docker/distribution/health/health.go:271 +0x1a1
net/http.HandlerFunc.ServeHTTP(0xc082007260, 0x1a70b00, 0xc082399830, 0xc082115500)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/registry.panicHandler.func1(0x1a70b00, 0xc082399830, 0xc082115500)
        C:/Go/src/github.com/docker/distribution/registry/registry.go:280 +0x7e
net/http.HandlerFunc.ServeHTTP(0xc082007280, 0x1a70b00, 0xc082399830, 0xc082115500)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/vendor/github.com/gorilla/handlers.combinedLoggingHandler.ServeHTTP(0x1974218, 0xc08201a010, 0x1a64588, 0xc082007280, 0x1a70960, 0xc082108270, 0xc082115500)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/gorilla/handlers/handlers.go:75 +0x128
github.com/docker/distribution/vendor/github.com/gorilla/handlers.(*combinedLoggingHandler).ServeHTTP(0xc0820072a0, 0x1a70960, 0xc082108270, 0xc082115500)
        <autogenerated>:14 +0xbb
net/http.serverHandler.ServeHTTP(0xc0820a6180, 0x1a70960, 0xc082108270, 0xc082115500)
        C:/Go/src/net/http/server.go:2081 +0x1a5
net/http.(*conn).serve(0xc082116d80)
        C:/Go/src/net/http/server.go:1472 +0xf35
created by net/http.(*Server).Serve
        C:/Go/src/net/http/server.go:2137 +0x455
time="2016-05-16T15:31:32-07:00" level=panic msg="runtime error: slice bounds out of range"
2016/05/16 15:31:32 http: panic serving 192.168.254.1:51077: &{0xc0820b83c0 map[] 2016-05-16 15:31:32.3995462 -0700 PDT panic runtime error: slice bounds out of range}
goroutine 31 [running]:
net/http.(*conn).serve.func1(0xc0822ae000)
        C:/Go/src/net/http/server.go:1389 +0xc8
panic(0xd3d1a0, 0xc082252880)
        C:/Go/src/runtime/panic.go:443 +0x4f7
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.(*Entry).log(0xc082252880, 0x0, 0xc0820bee40, 0x28)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/entry.go:103 +0x616
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.(*Entry).Panic(0xc082252880, 0xc0821b5dd0, 0x1, 0x1)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/entry.go:148 +0x83
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.(*Logger).Panic(0xc0820b83c0, 0xc0821b5dd0, 0x1, 0x1)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/logger.go:155 +0xf4
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.Panic(0xc0821b5dd0, 0x1, 0x1)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/exported.go:102 +0x48
github.com/docker/distribution/registry.panicHandler.func1.1()
        C:/Go/src/github.com/docker/distribution/registry/registry.go:277 +0x1a8
panic(0xc43920, 0xc08201e010)
        C:/Go/src/runtime/panic.go:443 +0x4f7
syscall.Readlink(0xc0822fd650, 0x9, 0xc0824ef880, 0x80, 0x80, 0x0, 0x0, 0x0)
        C:/Go/src/syscall/syscall_windows.go:1031 +0x4e9
os.Readlink(0xc0822fd650, 0x9, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/os/file_posix.go:21 +0xc4
os.Stat(0xc0822fd650, 0x9, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/os/stat_windows.go:62 +0x116
os.MkdirAll(0xc0822fd650, 0x9, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:21 +0x56
os.MkdirAll(0xc0822fd650, 0x10, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc0822fd650, 0x19, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc0822fd650, 0x1c, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc0822fd650, 0x29, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc0822fd650, 0x2f, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc0822fd650, 0x38, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc0822fd650, 0x5d, 0xc0000001ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
github.com/docker/distribution/registry/storage/driver/filesystem.(*driver).Writer(0xc0823771d0, 0x19757e0, 0xc0822fd490, 0xc0823179e0, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/driver/filesystem/driver.go:138 +0xd0
github.com/docker/distribution/registry/storage/driver/filesystem.(*driver).PutContent(0xc0823771d0, 0x19757e0, 0xc0822fd490, 0xc0823179e0, 0x5e, 0xc08227e0e0, 0x14, 0x20, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/driver/filesystem/driver.go:98 +0x82
github.com/docker/distribution/registry/storage/driver/base.(*Base).PutContent(0xc0823771e0, 0x19757e0, 0xc0822fd490, 0xc0823179e0, 0x5e, 0xc08227e0e0, 0x14, 0x20, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/driver/base/base.go:102 +0x3ef
github.com/docker/distribution/registry/storage.(*linkedBlobStore).Create(0xc0824ef680, 0x1977a68, 0xc0822fd340, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/linkedblobstore.go:178 +0x9da
github.com/docker/distribution/notifications.(*blobServiceListener).Create(0xc082311f20, 0x1977a68, 0xc0822fd340, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/notifications/listener.go:168 +0xe4
github.com/docker/distribution/registry/handlers.(*blobUploadHandler).StartBlobUpload(0xc0822fd340, 0x1a70c20, 0xc0820bc7d0, 0xc0823d20e0)
        C:/Go/src/github.com/docker/distribution/registry/handlers/blobupload.go:121 +0x2b2
github.com/docker/distribution/registry/handlers.(*blobUploadHandler).StartBlobUpload-fm(0x1a70c20, 0xc0820bc7d0, 0xc0823d20e0)
        C:/Go/src/github.com/docker/distribution/registry/handlers/blobupload.go:32 +0x45
net/http.HandlerFunc.ServeHTTP(0xc0822d7cd0, 0x1a70c20, 0xc0820bc7d0, 0xc0823d20e0)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/vendor/github.com/gorilla/handlers.MethodHandler.ServeHTTP(0xc0821e6ed0, 0x1a70c20, 0xc0820bc7d0, 0xc0823d20e0)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/gorilla/handlers/handlers.go:35 +0xb9
github.com/docker/distribution/registry/handlers.(*App).dispatcher.func1(0x1a70c20, 0xc0820bc7d0, 0xc0823d20e0)
        C:/Go/src/github.com/docker/distribution/registry/handlers/app.go:662 +0x253b
net/http.HandlerFunc.ServeHTTP(0xc082345760, 0x1a70c20, 0xc0820bc7d0, 0xc0823d20e0)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/vendor/github.com/gorilla/mux.(*Router).ServeHTTP(0xc082266eb0, 0x1a70c20, 0xc0820bc7d0, 0xc0823d20e0)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/gorilla/mux/mux.go:98 +0x2a5
github.com/docker/distribution/registry/handlers.(*App).ServeHTTP(0xc0823130e0, 0x1a70c20, 0xc0820bc7d0, 0xc0823d20e0)
        C:/Go/src/github.com/docker/distribution/registry/handlers/app.go:582 +0x315
github.com/docker/distribution/registry.alive.func1(0x1a70b00, 0xc0822f35f0, 0xc0823d20e0)
        C:/Go/src/github.com/docker/distribution/registry/registry.go:297 +0x138
net/http.HandlerFunc.ServeHTTP(0xc082050d80, 0x1a70b00, 0xc0822f35f0, 0xc0823d20e0)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/health.Handler.func1(0x1a70b00, 0xc0822f35f0, 0xc0823d20e0)
        C:/Go/src/github.com/docker/distribution/health/health.go:271 +0x1a1
net/http.HandlerFunc.ServeHTTP(0xc082007260, 0x1a70b00, 0xc0822f35f0, 0xc0823d20e0)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/registry.panicHandler.func1(0x1a70b00, 0xc0822f35f0, 0xc0823d20e0)
        C:/Go/src/github.com/docker/distribution/registry/registry.go:280 +0x7e
net/http.HandlerFunc.ServeHTTP(0xc082007280, 0x1a70b00, 0xc0822f35f0, 0xc0823d20e0)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/vendor/github.com/gorilla/handlers.combinedLoggingHandler.ServeHTTP(0x1974218, 0xc08201a010, 0x1a64588, 0xc082007280, 0x1a70960, 0xc08202a270, 0xc0823d20e0)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/gorilla/handlers/handlers.go:75 +0x128
github.com/docker/distribution/vendor/github.com/gorilla/handlers.(*combinedLoggingHandler).ServeHTTP(0xc0820072a0, 0x1a70960, 0xc08202a270, 0xc0823d20e0)
        <autogenerated>:14 +0xbb
net/http.serverHandler.ServeHTTP(0xc0820a6180, 0x1a70960, 0xc08202a270, 0xc0823d20e0)
        C:/Go/src/net/http/server.go:2081 +0x1a5
net/http.(*conn).serve(0xc0822ae000)
        C:/Go/src/net/http/server.go:1472 +0xf35
created by net/http.(*Server).Serve
        C:/Go/src/net/http/server.go:2137 +0x455
time="2016-05-16T15:31:32-07:00" level=panic msg="runtime error: slice bounds out of range"
2016/05/16 15:31:32 http: panic serving 192.168.254.1:51078: &{0xc0820b83c0 map[] 2016-05-16 15:31:32.4026395 -0700 PDT panic runtime error: slice bounds out of range}
goroutine 8 [running]:
net/http.(*conn).serve.func1(0xc0824ef900)
        C:/Go/src/net/http/server.go:1389 +0xc8
panic(0xd3d1a0, 0xc0821c7140)
        C:/Go/src/runtime/panic.go:443 +0x4f7
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.(*Entry).log(0xc0821c7140, 0x0, 0xc0824c41e0, 0x28)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/entry.go:103 +0x616
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.(*Entry).Panic(0xc0821c7140, 0xc0821b5dd0, 0x1, 0x1)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/entry.go:148 +0x83
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.(*Logger).Panic(0xc0820b83c0, 0xc0821b5dd0, 0x1, 0x1)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/logger.go:155 +0xf4
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.Panic(0xc0821b5dd0, 0x1, 0x1)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/exported.go:102 +0x48
github.com/docker/distribution/registry.panicHandler.func1.1()
        C:/Go/src/github.com/docker/distribution/registry/registry.go:277 +0x1a8
panic(0xc43920, 0xc08201e010)
        C:/Go/src/runtime/panic.go:443 +0x4f7
syscall.Readlink(0xc0823e1960, 0x9, 0xc0822af600, 0x80, 0x80, 0x0, 0x0, 0x0)
        C:/Go/src/syscall/syscall_windows.go:1031 +0x4e9
os.Readlink(0xc0823e1960, 0x9, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/os/file_posix.go:21 +0xc4
os.Stat(0xc0823e1960, 0x9, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/os/stat_windows.go:62 +0x116
os.MkdirAll(0xc0823e1960, 0x9, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:21 +0x56
os.MkdirAll(0xc0823e1960, 0x10, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc0823e1960, 0x19, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc0823e1960, 0x1c, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc0823e1960, 0x29, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc0823e1960, 0x2f, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc0823e1960, 0x38, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc0823e1960, 0x5d, 0xc0000001ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
github.com/docker/distribution/registry/storage/driver/filesystem.(*driver).Writer(0xc0823771d0, 0x19757e0, 0xc0823e17a0, 0xc082106cc0, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/driver/filesystem/driver.go:138 +0xd0
github.com/docker/distribution/registry/storage/driver/filesystem.(*driver).PutContent(0xc0823771d0, 0x19757e0, 0xc0823e17a0, 0xc082106cc0, 0x5e, 0xc0820fd700, 0x14, 0x20, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/driver/filesystem/driver.go:98 +0x82
github.com/docker/distribution/registry/storage/driver/base.(*Base).PutContent(0xc0823771e0, 0x19757e0, 0xc0823e17a0, 0xc082106cc0, 0x5e, 0xc0820fd700, 0x14, 0x20, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/driver/base/base.go:102 +0x3ef
github.com/docker/distribution/registry/storage.(*linkedBlobStore).Create(0xc0822af400, 0x1977a68, 0xc0823e16c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/linkedblobstore.go:178 +0x9da
github.com/docker/distribution/notifications.(*blobServiceListener).Create(0xc0820fd4e0, 0x1977a68, 0xc0823e16c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/notifications/listener.go:168 +0xe4
github.com/docker/distribution/registry/handlers.(*blobUploadHandler).StartBlobUpload(0xc0823e16c0, 0x1a70c20, 0xc082266000, 0xc0824ce700)
        C:/Go/src/github.com/docker/distribution/registry/handlers/blobupload.go:121 +0x2b2
github.com/docker/distribution/registry/handlers.(*blobUploadHandler).StartBlobUpload-fm(0x1a70c20, 0xc082266000, 0xc0824ce700)
        C:/Go/src/github.com/docker/distribution/registry/handlers/blobupload.go:32 +0x45
net/http.HandlerFunc.ServeHTTP(0xc082147370, 0x1a70c20, 0xc082266000, 0xc0824ce700)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/vendor/github.com/gorilla/handlers.MethodHandler.ServeHTTP(0xc082399950, 0x1a70c20, 0xc082266000, 0xc0824ce700)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/gorilla/handlers/handlers.go:35 +0xb9
github.com/docker/distribution/registry/handlers.(*App).dispatcher.func1(0x1a70c20, 0xc082266000, 0xc0824ce700)
        C:/Go/src/github.com/docker/distribution/registry/handlers/app.go:662 +0x253b
net/http.HandlerFunc.ServeHTTP(0xc082345760, 0x1a70c20, 0xc082266000, 0xc0824ce700)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/vendor/github.com/gorilla/mux.(*Router).ServeHTTP(0xc082266eb0, 0x1a70c20, 0xc082266000, 0xc0824ce700)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/gorilla/mux/mux.go:98 +0x2a5
github.com/docker/distribution/registry/handlers.(*App).ServeHTTP(0xc0823130e0, 0x1a70c20, 0xc082266000, 0xc0824ce700)
        C:/Go/src/github.com/docker/distribution/registry/handlers/app.go:582 +0x315
github.com/docker/distribution/registry.alive.func1(0x1a70b00, 0xc082398390, 0xc0824ce700)
        C:/Go/src/github.com/docker/distribution/registry/registry.go:297 +0x138
net/http.HandlerFunc.ServeHTTP(0xc082050d80, 0x1a70b00, 0xc082398390, 0xc0824ce700)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/health.Handler.func1(0x1a70b00, 0xc082398390, 0xc0824ce700)
        C:/Go/src/github.com/docker/distribution/health/health.go:271 +0x1a1
net/http.HandlerFunc.ServeHTTP(0xc082007260, 0x1a70b00, 0xc082398390, 0xc0824ce700)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/registry.panicHandler.func1(0x1a70b00, 0xc082398390, 0xc0824ce700)
        C:/Go/src/github.com/docker/distribution/registry/registry.go:280 +0x7e
net/http.HandlerFunc.ServeHTTP(0xc082007280, 0x1a70b00, 0xc082398390, 0xc0824ce700)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/vendor/github.com/gorilla/handlers.combinedLoggingHandler.ServeHTTP(0x1974218, 0xc08201a010, 0x1a64588, 0xc082007280, 0x1a70960, 0xc082108000, 0xc0824ce700)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/gorilla/handlers/handlers.go:75 +0x128
github.com/docker/distribution/vendor/github.com/gorilla/handlers.(*combinedLoggingHandler).ServeHTTP(0xc0820072a0, 0x1a70960, 0xc082108000, 0xc0824ce700)
        <autogenerated>:14 +0xbb
net/http.serverHandler.ServeHTTP(0xc0820a6180, 0x1a70960, 0xc082108000, 0xc0824ce700)
        C:/Go/src/net/http/server.go:2081 +0x1a5
net/http.(*conn).serve(0xc0824ef900)
        C:/Go/src/net/http/server.go:1472 +0xf35
created by net/http.(*Server).Serve
        C:/Go/src/net/http/server.go:2137 +0x455
time="2016-05-16T15:31:32-07:00" level=panic msg="runtime error: slice bounds out of range"
2016/05/16 15:31:32 http: panic serving 192.168.254.1:51079: &{0xc0820b83c0 map[] 2016-05-16 15:31:32.4055529 -0700 PDT panic runtime error: slice bounds out of range}
goroutine 32 [running]:
net/http.(*conn).serve.func1(0xc0822ae080)
        C:/Go/src/net/http/server.go:1389 +0xc8
panic(0xd3d1a0, 0xc0820b8e00)
        C:/Go/src/runtime/panic.go:443 +0x4f7
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.(*Entry).log(0xc0820b8e00, 0x0, 0xc0824c5d10, 0x28)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/entry.go:103 +0x616
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.(*Entry).Panic(0xc0820b8e00, 0xc08244fdd0, 0x1, 0x1)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/entry.go:148 +0x83
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.(*Logger).Panic(0xc0820b83c0, 0xc08244fdd0, 0x1, 0x1)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/logger.go:155 +0xf4
github.com/docker/distribution/vendor/github.com/Sirupsen/logrus.Panic(0xc08244fdd0, 0x1, 0x1)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/Sirupsen/logrus/exported.go:102 +0x48
github.com/docker/distribution/registry.panicHandler.func1.1()
        C:/Go/src/github.com/docker/distribution/registry/registry.go:277 +0x1a8
panic(0xc43920, 0xc08201e010)
        C:/Go/src/runtime/panic.go:443 +0x4f7
syscall.Readlink(0xc082197b90, 0x9, 0xc082116700, 0x80, 0x80, 0x0, 0x0, 0x0)
        C:/Go/src/syscall/syscall_windows.go:1031 +0x4e9
os.Readlink(0xc082197b90, 0x9, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/os/file_posix.go:21 +0xc4
os.Stat(0xc082197b90, 0x9, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/os/stat_windows.go:62 +0x116
os.MkdirAll(0xc082197b90, 0x9, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:21 +0x56
os.MkdirAll(0xc082197b90, 0x10, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc082197b90, 0x19, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc082197b90, 0x1c, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc082197b90, 0x29, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc082197b90, 0x2f, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc082197b90, 0x38, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
os.MkdirAll(0xc082197b90, 0x5d, 0xc0000001ff, 0x0, 0x0)
        C:/Go/src/os/path.go:42 +0x2e2
github.com/docker/distribution/registry/storage/driver/filesystem.(*driver).Writer(0xc0823771d0, 0x19757e0, 0xc0821979d0, 0xc082107ce0, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/driver/filesystem/driver.go:138 +0xd0
github.com/docker/distribution/registry/storage/driver/filesystem.(*driver).PutContent(0xc0823771d0, 0x19757e0, 0xc0821979d0, 0xc082107ce0, 0x5e, 0xc0820069c0, 0x14, 0x20, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/driver/filesystem/driver.go:98 +0x82
github.com/docker/distribution/registry/storage/driver/base.(*Base).PutContent(0xc0823771e0, 0x19757e0, 0xc0821979d0, 0xc082107ce0, 0x5e, 0xc0820069c0, 0x14, 0x20, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/driver/base/base.go:102 +0x3ef
github.com/docker/distribution/registry/storage.(*linkedBlobStore).Create(0xc082116500, 0x1977a68, 0xc0821978f0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/registry/storage/linkedblobstore.go:178 +0x9da
github.com/docker/distribution/notifications.(*blobServiceListener).Create(0xc082006400, 0x1977a68, 0xc0821978f0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/github.com/docker/distribution/notifications/listener.go:168 +0xe4
github.com/docker/distribution/registry/handlers.(*blobUploadHandler).StartBlobUpload(0xc0821978f0, 0x1a70c20, 0xc082266cd0, 0xc0823d22a0)
        C:/Go/src/github.com/docker/distribution/registry/handlers/blobupload.go:121 +0x2b2
github.com/docker/distribution/registry/handlers.(*blobUploadHandler).StartBlobUpload-fm(0x1a70c20, 0xc082266cd0, 0xc0823d22a0)
        C:/Go/src/github.com/docker/distribution/registry/handlers/blobupload.go:32 +0x45
net/http.HandlerFunc.ServeHTTP(0xc0820b74a0, 0x1a70c20, 0xc082266cd0, 0xc0823d22a0)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/vendor/github.com/gorilla/handlers.MethodHandler.ServeHTTP(0xc0824c5800, 0x1a70c20, 0xc082266cd0, 0xc0823d22a0)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/gorilla/handlers/handlers.go:35 +0xb9
github.com/docker/distribution/registry/handlers.(*App).dispatcher.func1(0x1a70c20, 0xc082266cd0, 0xc0823d22a0)
        C:/Go/src/github.com/docker/distribution/registry/handlers/app.go:662 +0x253b
net/http.HandlerFunc.ServeHTTP(0xc082345760, 0x1a70c20, 0xc082266cd0, 0xc0823d22a0)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/vendor/github.com/gorilla/mux.(*Router).ServeHTTP(0xc082266eb0, 0x1a70c20, 0xc082266cd0, 0xc0823d22a0)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/gorilla/mux/mux.go:98 +0x2a5
github.com/docker/distribution/registry/handlers.(*App).ServeHTTP(0xc0823130e0, 0x1a70c20, 0xc082266cd0, 0xc0823d22a0)
        C:/Go/src/github.com/docker/distribution/registry/handlers/app.go:582 +0x315
github.com/docker/distribution/registry.alive.func1(0x1a70b00, 0xc0824c4420, 0xc0823d22a0)
        C:/Go/src/github.com/docker/distribution/registry/registry.go:297 +0x138
net/http.HandlerFunc.ServeHTTP(0xc082050d80, 0x1a70b00, 0xc0824c4420, 0xc0823d22a0)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/health.Handler.func1(0x1a70b00, 0xc0824c4420, 0xc0823d22a0)
        C:/Go/src/github.com/docker/distribution/health/health.go:271 +0x1a1
net/http.HandlerFunc.ServeHTTP(0xc082007260, 0x1a70b00, 0xc0824c4420, 0xc0823d22a0)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/registry.panicHandler.func1(0x1a70b00, 0xc0824c4420, 0xc0823d22a0)
        C:/Go/src/github.com/docker/distribution/registry/registry.go:280 +0x7e
net/http.HandlerFunc.ServeHTTP(0xc082007280, 0x1a70b00, 0xc0824c4420, 0xc0823d22a0)
        C:/Go/src/net/http/server.go:1618 +0x41
github.com/docker/distribution/vendor/github.com/gorilla/handlers.combinedLoggingHandler.ServeHTTP(0x1974218, 0xc08201a010, 0x1a64588, 0xc082007280, 0x1a70960, 0xc082108680, 0xc0823d22a0)
        C:/Go/src/github.com/docker/distribution/vendor/github.com/gorilla/handlers/handlers.go:75 +0x128
github.com/docker/distribution/vendor/github.com/gorilla/handlers.(*combinedLoggingHandler).ServeHTTP(0xc0820072a0, 0x1a70960, 0xc082108680, 0xc0823d22a0)
        <autogenerated>:14 +0xbb
net/http.serverHandler.ServeHTTP(0xc0820a6180, 0x1a70960, 0xc082108680, 0xc0823d22a0)
        C:/Go/src/net/http/server.go:2081 +0x1a5
net/http.(*conn).serve(0xc0822ae080)
        C:/Go/src/net/http/server.go:1472 +0xf35
created by net/http.(*Server).Serve
        C:/Go/src/net/http/server.go:2137 +0x455
@dmcgowan
Copy link
Collaborator

The fileystem backend does not appear to currently support windows. If it was to be updated to support windows then the use of path would need to be replaced with path/filepath (see https://github.com/docker/distribution/blob/master/registry/storage/driver/filesystem/driver.go). We don't currently have a maintainer for supporting windows builds but if you want to try it out and submit a patch we would be appreciative.

@aaronlehmann
Copy link
Contributor

Interesting. Looks like the panic is in the golang runtime, and is triggered by calling MkdirAll.

panic(0xc43920, 0xc08201e010)
        C:/Go/src/runtime/panic.go:443 +0x4f7
syscall.Readlink(0xc08216f0a0, 0x9, 0xc0822af500, 0x80, 0x80, 0x0, 0x0, 0x0)
        C:/Go/src/syscall/syscall_windows.go:1031 +0x4e9
os.Readlink(0xc08216f0a0, 0x9, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/os/file_posix.go:21 +0xc4
os.Stat(0xc08216f0a0, 0x9, 0x0, 0x0, 0x0, 0x0)
        C:/Go/src/os/stat_windows.go:62 +0x116
os.MkdirAll(0xc08216f0a0, 0x9, 0x1ff, 0x0, 0x0)
        C:/Go/src/os/path.go:21 +0x56

If I had to guess, I'd say this is triggered by the filesystem driver's use of / as a path separator instead of the correct OS-specific path separator. I see that the fullPath method uses path.Join instead of filepath.Join. I think a correct implementation of fullPath would be something like:

filepath.Join(d.rootDirectory, filepath.FromSlash(subPath))

Would you be able to try this change and see if it fixes the problem?

@aaronlehmann
Copy link
Contributor

(As an aside, it's a little ironic that the panic trace apparently triggered by wrongly using slash-based paths shows slash-based paths for source files.)

@StefanScherer
Copy link
Author

Thanks for the tips. A GO binary, like most languages, on Windows is capable using / as a path separator.

I did another test on my first TP5 machine by using the same path in container as on the host:

mkdir C:\registry
docker run -d -p 5000:5000 -v "C:\registry:C:\registry" stefanscherer/registry-windows:2.4.1-rc.2

With this I can push docker images.

My previous setup was

mkdir C:\registry-v2
docker run -d -p 5000:5000 -v "C:\registry-v2:C:\registry" stefanscherer/registry-windows:2.4.1-rc.2

and this panicked. I'll have a close look what is the reason.

@StefanScherer
Copy link
Author

But this is not reproducible that it works with that data directory. After stopping the container, moving old data away, creating a new C:\registry directory and running a new container it also doesn't work pushing an image.

@RichardScothern RichardScothern added this to the Registry/2.5 milestone Jun 15, 2016
@StefanScherer
Copy link
Author

Still the same with registry 2.5.1. It works fine inside a container if C:\registry is an internal directory. I can push and pull images. Only if it is a mapped volume from the host I can't push images.
The directory C:\registry is symlinked to an UNC path:

C:\>dir
 Volume in drive C has no label.
 Volume Serial Number is 5689-C498

 Directory of C:\

10/09/2016  10:29 AM    <DIR>          config
09/22/2016  02:45 AM               664 License.txt
07/16/2016  06:18 AM    <DIR>          PerfLogs
10/09/2016  10:29 AM    <DIR>          Program Files
07/16/2016  06:18 AM    <DIR>          Program Files (x86)
10/09/2016  10:29 AM    <SYMLINKD>     registry [\\?\ContainerMappedDirectories\D02F7915-4EA74CFA-B7AB-D7CEA9F47EB7]
10/07/2016  02:54 PM        19,377,152 registry.exe
10/09/2016  10:29 AM    <DIR>          Users
10/09/2016  10:29 AM    <DIR>          Windows
               2 File(s)     19,377,816 bytes
               7 Dir(s)  21,240,770,560 bytes free

I've seen a similar issue with Node.js running inside a volume mount.

@sixeyed
Copy link
Contributor

sixeyed commented Nov 21, 2016

This is down to issue 15978 in Go. Windows Server 2016 reports the underlying location for a SYMLINKD in a different format from previous versions.

A fix has been merged into master, which I have verified this with a custom Go build @0bae74e to produce a custom registry build @v2.6.0-rc.1 - volumes and host mounts work correctly.

The fix will be in the 1.8 release (expected February 2017). I don't see we can produce a stock registry build on Windows until the official release, but I will put my custom build on the Hub.

@StefanScherer
Copy link
Author

Thanks for the link. I'll compare that with the problem with Node.js/libuv I'm struggling with.

So we could build Go from source in a container to build registry in a container.

@sixeyed
Copy link
Contributor

sixeyed commented Nov 21, 2016

Exactly, yes. That's what I'm looking at now. Until then, the manually built image is available: sixeyed/registry.

@StefanScherer
Copy link
Author

@sixeyed Awesome. Just updated my demo scenario, it's so easy with docker just replacing the image name.

@dmcgowan dmcgowan modified the milestones: Registry/2.7, Registry/2.6 Nov 21, 2016
@StefanScherer
Copy link
Author

It seems that registry also needs the fix in upcoming Golang version. A Docker image with Registry 2.6.1 built with Golang 1.8 has a strange "first container" problem in a fresh VM. See StefanScherer/dockerfiles-windows#143 for details.
After rebuilding it with Golang 1.9 devel it works fine even if it is the first container started on that Win2016 VM.

@StefanScherer
Copy link
Author

Compiling registry 2.6.2 with Golang 1.9 fixes the problem. Building and testing the docker image in AppVeyor works fine with a mapped volume: https://ci.appveyor.com/project/StefanScherer/dockerfiles-windows/build/1.0.746

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants