Skip to content

NullPointerException on selecting tag in repository tags page #51

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

Closed
bergtwvd opened this issue Jul 1, 2016 · 13 comments
Closed

NullPointerException on selecting tag in repository tags page #51

bergtwvd opened this issue Jul 1, 2016 · 13 comments
Labels
Milestone

Comments

@bergtwvd
Copy link

bergtwvd commented Jul 1, 2016

See below.

registry_1      | 172.18.0.3 - - [01/Jul/2016:23:49:19 +0000] "GET /v2/msaas/pi-crc/manifests/5.3.0.0L HTTP/1.1" 200 12505 "" "Java/1.7.0_101"
registry-web_1  | 2016-07-01 23:49:19,920 [http-bio-8080-exec-3] ERROR errors.GrailsExceptionResolver  - NullPointerException occurred when processing request: [GET] /repo/tag/msaas%252Fpi-crc/5.3.0.0L
registry-web_1  | Cannot invoke method last() on null object. Stacktrace follows:
registry-web_1  | java.lang.NullPointerException: Cannot invoke method last() on null object
registry-web_1  |       at docker.registry.web.RepositoryController$_tag_closure10.doCall(RepositoryController.groovy:115)
registry-web_1  |       at docker.registry.web.RepositoryController.tag(RepositoryController.groovy:113)
registry-web_1  |       at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198)
registry-web_1  |       at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63)
registry-web_1  |       at grails.plugin.springsecurity.web.filter.GrailsAnonymousAuthenticationFilter.doFilter(GrailsAnonymousAuthenticationFilter.java:53)
registry-web_1  |       at grails.plugin.springsecurity.web.authentication.logout.MutableLogoutFilter.doFilter(MutableLogoutFilter.java:62)
registry-web_1  |       at grails.plugin.springsecurity.web.SecurityRequestHolderFilter.doFilter(SecurityRequestHolderFilter.java:59)
registry-web_1  |       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
registry-web_1  |       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
registry-web_1  |       at java.lang.Thread.run(Thread.java:745)
nginx_1         | xx.xx.xx.xx - - [01/Jul/2016:23:49:19 +0000] "GET /repo/tag/msaas%252Fpi-crc/5.3.0.0L HTTP/1.1" 500 3103 "https://app-docker02.xxxxl/repo/tags/msaas%252Fpi-crc" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0" "-"

@mkuchin
Copy link
Owner

mkuchin commented Jul 2, 2016

@bergtwvd, thanks for bug report. The same bug was also reported in #42.

Looks like Cmd field is empty in docker registry response.
Can you share response from you docker registry on this command:

curl -H "Accept: application/vnd.docker.distribution.manifest.v2+json" $REGISTRY_URL/v2/msaas/pi-crc/manifests/5.3.0.0L

changing $REGISTRY_URL to your registry URL. You may also need to temporarily disable authentication on your docker registry to allow the execution of this request.

@mkuchin mkuchin added this to the version 0.1.2 milestone Jul 2, 2016
@mkuchin mkuchin added the bug label Jul 2, 2016
@bergtwvd
Copy link
Author

bergtwvd commented Jul 5, 2016

Here the output of the command:

docker@docker-1:/c/Users/bergtwvd/docker/registry-webui/examples/nginx-auth-enabled$ curl -H "Accept: application/vnd.docker.distribution.manifest.v2+json" localhost:5000/v2/msaas/pi-crc/manifests/5.3.0.0L
{
   "schemaVersion": 2,
   "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
   "config": {
      "mediaType": "application/vnd.docker.container.image.v1+json",
      "size": 6250,
      "digest": "sha256:0398b0ecc955c5e9ab4a56983608e2c3953e2260a95d997a6a1127e1c728db90"
   },
   "layers": [
      {
         "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
         "size": 65670786,
         "digest": "sha256:6edcc89ed412d17fc5d20cd8dbc9b672256afa7aa1b7feafb1578a0251bdef7c"
      },
      {
         "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
         "size": 71481,
         "digest": "sha256:bdf37643ee248c8b2f44d893eed0a28b9cd318437aae78f7e4cd3437c1ee1a03"
      },
      {
         "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
         "size": 681,
         "digest": "sha256:ea0211d47051cc717adf037a6caf54ac77a1c7367e3c52e899e582a848543b71"
      },
      {
         "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
         "size": 32,
         "digest": "sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"
      },
      {
         "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
         "size": 197350608,
         "digest": "sha256:ca79d80cf26067541dd45a4e80ca8f45f5b0a48f649e9c4f50a231da69f4e876"
      },
      {
         "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
         "size": 227973284,
         "digest": "sha256:976a30be4379c8de07b32d28eac3897315f1f753f264d569a4aa70cd61173c82"
      },
      {
         "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
         "size": 124,
         "digest": "sha256:573434b5c49b9b7ef09b56bbfbcfb396f4f9b043aba44e52da005c09a3893141"
      },
      {
         "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
         "size": 29766321,
         "digest": "sha256:62294899974d5daad60683fdf654e888571939194f6d4f02f3fdb94a037c59a8"
      },
      {
         "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
         "size": 892,
         "digest": "sha256:c9e64e5ac8708d144f083455f9ba773ef42c28f7fffe63137ccedaad1937886b"
      },
      {
         "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
         "size": 1213,
         "digest": "sha256:c377a0819e37a39e05f5b80d433964519764133a53f0ed898497dcf1e3e5c602"
      }
   ]
}docker@docker-1:/c/Users/bergtwvd/docker/registry-webui/examples/nginx-auth-enabled$

@mkuchin
Copy link
Owner

mkuchin commented Jul 5, 2016

Thanks for output, @bergtwvd.
What are your docker engine and docker registry version?

@bergtwvd
Copy link
Author

bergtwvd commented Jul 5, 2016

docker@docker-1:/c/Users/bergtwvd/docker/registry-webui/examples/nginx-auth-enabled$ docker -v
Docker version 1.11.2, build b9f10c9
docker@docker-1:/c/Users/bergtwvd/docker/registry-webui/examples/nginx-auth-enabled$ docker images registry
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
registry            2.4.1               8ff6a4aae657        3 weeks ago         171.6 MB
d

@mkuchin
Copy link
Owner

mkuchin commented Jul 5, 2016

One more question, can you please share output of the command:

curl -v localhost:5000/v2/msaas/pi-crc/manifests/5.3.0.0L

@bergtwvd
Copy link
Author

bergtwvd commented Jul 5, 2016

Here it is:

docker@docker-1:~$ curl -v localhost:5000/v2/msaas/pi-crc/manifests/5.3.0.0L
* Adding handle: conn: 0xe8f410
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0xe8f410) send_pipe: 1, recv_pipe: 0
* About to connect() to localhost port 5000 (#0)
*   Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 5000 (#0)
> GET /v2/msaas/pi-crc/manifests/5.3.0.0L HTTP/1.1
> User-Agent: curl/7.33.0
> Host: localhost:5000
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Length: 12505
< Content-Type: application/vnd.docker.distribution.manifest.v1+prettyjws
< Docker-Content-Digest: sha256:deff2b9edf52761208b7b2ab1b61e75e8de9cc92bd3e8fffaf4abc9348f70f5b
< Docker-Distribution-Api-Version: registry/2.0
< Etag: "sha256:deff2b9edf52761208b7b2ab1b61e75e8de9cc92bd3e8fffaf4abc9348f70f5b"
< Date: Tue, 05 Jul 2016 12:05:55 GMT
<
{
   "schemaVersion": 1,
   "name": "msaas/pi-crc",
   "tag": "5.3.0.0L",
   "architecture": "amd64",
   "fsLayers": [
      {
         "blobSum": "sha256:c377a0819e37a39e05f5b80d433964519764133a53f0ed898497dcf1e3e5c602"
      },
      {
         "blobSum": "sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"
      },
      {
         "blobSum": "sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"
      },
      {
         "blobSum": "sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"
      },
      {
         "blobSum": "sha256:c9e64e5ac8708d144f083455f9ba773ef42c28f7fffe63137ccedaad1937886b"
      },
      {
         "blobSum": "sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"
      },
      {
         "blobSum": "sha256:62294899974d5daad60683fdf654e888571939194f6d4f02f3fdb94a037c59a8"
      },
      {
         "blobSum": "sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"
      },
      {
         "blobSum": "sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"
      },
      {
         "blobSum": "sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"
      },
      {
         "blobSum": "sha256:573434b5c49b9b7ef09b56bbfbcfb396f4f9b043aba44e52da005c09a3893141"
      },
      {
         "blobSum": "sha256:976a30be4379c8de07b32d28eac3897315f1f753f264d569a4aa70cd61173c82"
      },
      {
         "blobSum": "sha256:ca79d80cf26067541dd45a4e80ca8f45f5b0a48f649e9c4f50a231da69f4e876"
      },
      {
         "blobSum": "sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"
      },
      {
         "blobSum": "sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"
      },
      {
         "blobSum": "sha256:ea0211d47051cc717adf037a6caf54ac77a1c7367e3c52e899e582a848543b71"
      },
      {
         "blobSum": "sha256:bdf37643ee248c8b2f44d893eed0a28b9cd318437aae78f7e4cd3437c1ee1a03"
      },
      {
         "blobSum": "sha256:6edcc89ed412d17fc5d20cd8dbc9b672256afa7aa1b7feafb1578a0251bdef7c"
      }
   ],
   "history": [
      {
         "v1Compatibility": "{\"architecture\":\"amd64\",\"author\":\"bergtwvd\",\"config\":{\"Hostname\":\"\",\"Domainname\":\"\",\"User\":\"\",\"AttachStdin\":false,\"AttachStdout\":false,\"AttachStderr\":false,\"ExposedPorts\":{\"9001/tcp\":{}},\"Tty\":false,\"OpenStdin\":false,\"StdinOnce\":false,\"Env\":[\"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\",\"RTI_HOME=/usr/local/prti1516e\"],\"Cmd\":null,\"Image\":\"\",\"Volumes\":null,\"WorkingDir\":\"/tmp/start\",\"Entrypoint\":[\"/bin/sh\",\"./start.sh\"],\"OnBuild\":null,\"Labels\":{}},\"container\":\"08bf1c3d0b930f449ed278fe9eb3b74e696a729f0e45873e0a65390279a9966b\",\"container_config\":{\"Hostname\":\"08bf1c3d0b93\",\"Domainname\":\"\",\"User\":\"\",\"AttachStdin\":true,\"AttachStdout\":true,\"AttachStderr\":true,\"ExposedPorts\":{\"9001/tcp\":{}},\"Tty\":true,\"OpenStdin\":true,\"StdinOnce\":true,\"Env\":[\"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\",\"RTI_HOME=/usr/local/prti1516e\"],\"Cmd\":null,\"Image\":\"msaas-registry.cloudapp.net:5000/msaas/pi-crc:5.3.0.0\",\"Volumes\":null,\"WorkingDir\":\"/tmp/start\",\"Entrypoint\":[\"/bin/bash\"],\"MacAddress\":\"00:18:8B:0D:4F:0B\",\"OnBuild\":null,\"Labels\":{},\"StopSignal\":\"SIGTERM\"},\"created\":\"2016-05-24T15:41:44.442595926Z\",\"docker_version\":\"1.10.1\",\"id\":\"b52e37b856edb253e01796f9bf0a743f437caae84868f26e62abc7b07d7d7753\",\"os\":\"linux\",\"parent\":\"9a5b5ec5352a4472ca76d8468792512520c2452df5c8837e46936467119eab21\"}"
      },
      {
         "v1Compatibility": "{\"id\":\"9a5b5ec5352a4472ca76d8468792512520c2452df5c8837e46936467119eab21\",\"parent\":\"8a0927218e2bb1c7605a81f8e5101c207007511e389c719f4d49a09cb02f680a\",\"created\":\"2016-05-24T15:29:10.762981581Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c #(nop) ENTRYPOINT \\u0026{[\\\"/bin/sh\\\" \\\"./start.sh\\\"]}\"]},\"author\":\"Tom van den Berg \\[email protected]\\u003e\",\"throwaway\":true}"
      },
      {
         "v1Compatibility": "{\"id\":\"8a0927218e2bb1c7605a81f8e5101c207007511e389c719f4d49a09cb02f680a\",\"parent\":\"f6d0b65ad6ac0e841661bd278415dd125b5466f459bc63620e317113f7ae1cd9\",\"created\":\"2016-05-24T15:29:10.704297087Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c #(nop) WORKDIR /tmp/start\"]},\"author\":\"Tom van den Berg \\[email protected]\\u003e\",\"throwaway\":true}"
      },
      {
         "v1Compatibility": "{\"id\":\"f6d0b65ad6ac0e841661bd278415dd125b5466f459bc63620e317113f7ae1cd9\",\"parent\":\"ff1233908048e6ce7d527e2af85082fbdb35d909e36df69f705bd67b04381cfb\",\"created\":\"2016-05-24T15:29:10.64544356Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c #(nop) EXPOSE 9001/tcp\"]},\"author\":\"Tom van den Berg \\[email protected]\\u003e\",\"throwaway\":true}"
      },
      {
         "v1Compatibility": "{\"id\":\"ff1233908048e6ce7d527e2af85082fbdb35d909e36df69f705bd67b04381cfb\",\"parent\":\"8246b2ba2a8e16a9e3b3bf6318a504476ee055c49547cdabbb837775d9a75351\",\"created\":\"2016-05-24T15:29:10.554234357Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c #(nop) COPY dir:7797c2b213f783302d3b815b2c7ac782f77c5b1f02d26355b7aca91d8599eab7 in /tmp/start\"]},\"author\":\"Tom van den Berg \\[email protected]\\u003e\"}"
      },
      {
         "v1Compatibility": "{\"id\":\"8246b2ba2a8e16a9e3b3bf6318a504476ee055c49547cdabbb837775d9a75351\",\"parent\":\"f32308d00721e2c6b3ba8edffa9129f266c5edd72aa8b258ef1c2176c10d78b0\",\"created\":\"2016-05-24T15:29:10.459357884Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c mkdir -p /var/log/supervisor\"]},\"author\":\"Tom van den Berg \\[email protected]\\u003e\",\"throwaway\":true}"
      },
      {
         "v1Compatibility": "{\"id\":\"f32308d00721e2c6b3ba8edffa9129f266c5edd72aa8b258ef1c2176c10d78b0\",\"parent\":\"314b9db777768b8385b958dcab06e10634e038ec297a1d3787699eda7b333dfb\",\"created\":\"2016-05-24T15:29:10.048869264Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c apt-get update \\u0026\\u0026 apt-get install -y supervisor\"]},\"author\":\"Tom van den Berg \\[email protected]\\u003e\"}"
      },
      {
         "v1Compatibility": "{\"id\":\"314b9db777768b8385b958dcab06e10634e038ec297a1d3787699eda7b333dfb\",\"parent\":\"58ea9cd41d6c310feaa6cccbd077cc781c7219d5f61a9e2d1baa9267c509d12b\",\"created\":\"2016-05-24T15:28:36.558033902Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c #(nop) MAINTAINER Tom van den Berg \\[email protected]\\u003e\"]},\"author\":\"Tom van den Berg \\[email protected]\\u003e\",\"throwaway\":true}"
      },
      {
         "v1Compatibility": "{\"id\":\"58ea9cd41d6c310feaa6cccbd077cc781c7219d5f61a9e2d1baa9267c509d12b\",\"parent\":\"71cca021bd883c9337277152875a728332a22391d90c011fdb353c992b4ca046\",\"created\":\"2016-05-24T15:26:46.378987347Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c #(nop) CMD [\\\"/bin/bash\\\"]\"]},\"author\":\"Tom van den Berg \\[email protected]\\u003e\",\"throwaway\":true}"
      },
      {
         "v1Compatibility": "{\"id\":\"71cca021bd883c9337277152875a728332a22391d90c011fdb353c992b4ca046\",\"parent\":\"f11cf781fc9e2d4629abcf0afb55ef7bac214df4c66ad2abecb573907533df7f\",\"created\":\"2016-05-24T15:26:46.32614629Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c #(nop) ENV RTI_HOME=/usr/local/prti1516e\"]},\"author\":\"Tom van den Berg \\[email protected]\\u003e\",\"throwaway\":true}"
      },
      {
         "v1Compatibility": "{\"id\":\"f11cf781fc9e2d4629abcf0afb55ef7bac214df4c66ad2abecb573907533df7f\",\"parent\":\"f540bf56c55917d59d811944950db02d94e7aae2fd0639465d2f2aba38ae3f79\",\"created\":\"2016-05-24T15:26:46.172762176Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c rm -rf /tmp/prti/\"]},\"author\":\"Tom van den Berg \\[email protected]\\u003e\"}"
      },
      {
         "v1Compatibility": "{\"id\":\"f540bf56c55917d59d811944950db02d94e7aae2fd0639465d2f2aba38ae3f79\",\"parent\":\"2d70a46d53e6bde5bdce16cb9f1193f58adbd27bfb25208277f7c03922d8a008\",\"created\":\"2016-05-24T15:26:45.019076203Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c /tmp/prti/prti1516e_5_3_0_0_linux64_b124.sh -n -q\"]},\"author\":\"Tom van den Berg \\[email protected]\\u003e\"}"
      },
      {
         "v1Compatibility": "{\"id\":\"2d70a46d53e6bde5bdce16cb9f1193f58adbd27bfb25208277f7c03922d8a008\",\"parent\":\"708c787b2f4b56d38449114fa6ede3a90e4ecaaf06ef0321b12c24fe22e3b3aa\",\"created\":\"2016-05-24T15:25:45.912966664Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c #(nop) COPY dir:6cffe5348227e20775c1f9242d145080114156950da0972aa9a9702c9a7ba59b in /tmp/prti/\"]},\"author\":\"Tom van den Berg \\[email protected]\\u003e\"}"
      },
      {
         "v1Compatibility": "{\"id\":\"708c787b2f4b56d38449114fa6ede3a90e4ecaaf06ef0321b12c24fe22e3b3aa\",\"parent\":\"f6a19f862c73f86df869cefa9d1e69aba1e2165f2039264384258a592f400b56\",\"created\":\"2016-05-24T15:25:42.742777451Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c #(nop) MAINTAINER Tom van den Berg \\[email protected]\\u003e\"]},\"author\":\"Tom van den Berg \\[email protected]\\u003e\",\"throwaway\":true}"
      },
      {
         "v1Compatibility": "{\"id\":\"f6a19f862c73f86df869cefa9d1e69aba1e2165f2039264384258a592f400b56\",\"parent\":\"8b90def8eea61ff84c1a1ed5651d4256f7444c11dce11c3a3b691635008dbf5d\",\"created\":\"2015-12-08T18:38:33.099419195Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c #(nop) CMD [\\\"/bin/bash\\\"]\"]}}"
      },
      {
         "v1Compatibility": "{\"id\":\"8b90def8eea61ff84c1a1ed5651d4256f7444c11dce11c3a3b691635008dbf5d\",\"parent\":\"e4f2621580054ff194e3dba720f103dea39f341df51b100b11a127a3b0abef2b\",\"created\":\"2015-12-08T18:38:32.583440447Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c sed -i 's/^#\\\\s*\\\\(deb.*universe\\\\)$/\\\\1/g' /etc/apt/sources.list\"]}}"
      },
      {
         "v1Compatibility": "{\"id\":\"e4f2621580054ff194e3dba720f103dea39f341df51b100b11a127a3b0abef2b\",\"parent\":\"c7c5677561a79ec5cc7cd5d2e5707799c9114a3e45f26cca9a00e2614beb0c4a\",\"created\":\"2015-12-08T18:38:30.935540197Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c echo '#!/bin/sh' \\u003e /usr/sbin/policy-rc.d \\t\\u0026\\u0026 echo 'exit 101' \\u003e\\u003e /usr/sbin/policy-rc.d \\t\\u0026\\u0026 chmod +x /usr/sbin/policy-rc.d \\t\\t\\u0026\\u0026 dpkg-divert --local --rename --add /sbin/initctl \\t\\u0026\\u0026 cp -a /usr/sbin/policy-rc.d /sbin/initctl \\t\\u0026\\u0026 sed -i 's/^exit.*/exit 0/' /sbin/initctl \\t\\t\\u0026\\u0026 echo 'force-unsafe-io' \\u003e /etc/dpkg/dpkg.cfg.d/docker-apt-speedup \\t\\t\\u0026\\u0026 echo 'DPkg::Post-Invoke { \\\"rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true\\\"; };' \\u003e /etc/apt/apt.conf.d/docker-clean \\t\\u0026\\u0026 echo 'APT::Update::Post-Invoke { \\\"rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true\\\"; };' \\u003e\\u003e /etc/apt/apt.conf.d/docker-clean \\t\\u0026\\u0026 echo 'Dir::Cache::pkgcache \\\"\\\"; Dir::Cache::srcpkgcache \\\"\\\";' \\u003e\\u003e /etc/apt/apt.conf.d/docker-clean \\t\\t\\u0026\\u0026 echo 'Acquire::Languages \\\"none\\\";' \\u003e /etc/apt/apt.conf.d/docker-no-languages \\t\\t\\u0026\\u0026 echo 'Acquire::GzipIndexes \\\"true\\\"; Acquire::CompressionTypes::Order:: \\\"gz\\\";' \\u003e /etc/apt/apt.conf.d/docker-gzip-indexes\"]}}"
      },
      {
         "v1Compatibility": "{\"id\":\"c7c5677561a79ec5cc7cd5d2e5707799c9114a3e45f26cca9a00e2614beb0c4a\",\"created\":\"2015-12-08T18:38:25.746069003Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c #(nop) ADD file:9b5ba3935021955492697a04d541cc7797e4bea34365117fb9566c3117d01fdf in /\"]}}"
      }
   ],
   "signatures": [
      {
         "header": {
            "jwk": {
               "crv": "P-256",
               "kid": "4QO3:67QM:HE2S:AKXT:4AWK:272X:FLLV:ORTD:NZS2:TUK5:XDJV:3LAU",
               "kty": "EC",
               "x": "uh24JNPFMHRjLud-isjsrd4ScCFbJqC3n5ldSYp4PxA",
               "y": "KdQnL2snhgOAD9V5wj5f0yftleualf_5cxSurYw7L2I"
            },
            "alg": "ES256"
         },
         "signature": "_NqLG_OMkjhhxHWwj8h_fYicmND6aVE4LhbnDaTg_rMm28OBVy3tLY6trx6BVg67L_umdRM6lkb4fb0YH_I0pg",
         "protected": "eyJmb3JtYXRMZW5ndGgiOjExODU3LCJmb3JtYXRUYWlsIjoiQ24wIiwidGltZSI6IjIwMTYtMDctMDVUMTI6MDU6NTVaIn0"
      }
   ]
* Connection #0 to host localhost left intact
}docker@docker-1:~$

mkuchin added a commit that referenced this issue Jul 5, 2016
@mkuchin
Copy link
Owner

mkuchin commented Jul 5, 2016

@bergtwvd, thanks for the help, easy fix should be sufficient.
It's available in the latest version, can you confirm if it works for you?

@bergtwvd
Copy link
Author

bergtwvd commented Jul 5, 2016

Is it already available as a container image?
I just pulled lastest from the Hub, and still see the same stacktrace. But I suppose this is v0.1.1 and your fix is in v0.1.2.

@mkuchin
Copy link
Owner

mkuchin commented Jul 6, 2016

Yes, fix already available in hyper/docker-registry-web:latest.
That's strange, I can't reproduce this bug on latest version with your JSON manifest.

@bergtwvd
Copy link
Author

bergtwvd commented Jul 6, 2016

What I did is the following:

  • I removed all files under examples/nginx-auth-enabled/db and examples/nginx-auth-enabled/registry.
  • docker pull hyper/docker-registry-web
  • docker-compose up
  • open a webbrower, login as admin, and add a user X wil push/pull permissions
  • docker login localhost:443 (suppying username X / password X)
  • docker push localhost:443/msaas/pi-crc:5.3.0.0L
  • open webbrowser, login as X, and navigate to Home > msaas/pi-crc > 5.3.0.0L

Console shows:

registry_1      | 172.21.0.3 - - [06/Jul/2016:13:52:45 +0000] "GET /v2/msaas/pi-crc/manifests/5.3.0.0L HTTP/1.1" 200 12505 "" "Java/1.7.0_101"
registry-web_1  | 2016-07-06 13:52:45,986 [http-bio-8080-exec-9] ERROR errors.GrailsExceptionResolver  - NullPointerException occurred when processing request: [GET] /repo/tag/msaas%252Fpi-crc/5.3.0.0L
registry-web_1  | Cannot invoke method last() on null object. Stacktrace follows:
registry-web_1  | java.lang.NullPointerException: Cannot invoke method last() on null object
registry-web_1  |       at docker.registry.web.RepositoryController$_tag_closure10.doCall(RepositoryController.groovy:115)
registry-web_1  |       at docker.registry.web.RepositoryController.tag(RepositoryController.groovy:113)
registry-web_1  |       at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198)
registry-web_1  |       at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63)
registry-web_1  |       at grails.plugin.springsecurity.web.filter.GrailsAnonymousAuthenticationFilter.doFilter(GrailsAnonymousAuthenticationFilter.java:53)
registry-web_1  |       at grails.plugin.springsecurity.web.authentication.logout.MutableLogoutFilter.doFilter(MutableLogoutFilter.java:62)
registry-web_1  |       at grails.plugin.springsecurity.web.SecurityRequestHolderFilter.doFilter(SecurityRequestHolderFilter.java:59)
registry-web_1  |       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
registry-web_1  |       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
registry-web_1  |       at java.lang.Thread.run(Thread.java:745)
nginx_1         | 10.0.2.2 - - [06/Jul/2016:13:52:46 +0000] "GET /repo/tag/msaas%252Fpi-crc/5.3.0.0L HTTP/1.1" 500 2872 "https://localhost/repo/tags/msaas%252Fpi-crc" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0" "-"

@mkuchin
Copy link
Owner

mkuchin commented Jul 6, 2016

Thanks for patience. I'd added commit hash tracking in the build, to make sure we are talking about the same version.

Can you pull the latest version, please and confirm that you can see such log message on startup:

 [localhost-startStop-1] INFO  conf.BootStrap  - Starting registry-web ver. 0.1.2-SNAPSHOT-4cc4d250a0afdcc33e4368be55688a7ad9ed5ac8

@bergtwvd
Copy link
Author

bergtwvd commented Jul 6, 2016

I am feeling really ashamed. I just looked in the docker compose file, where the image was still pointing to v0.1.0. I have changed this to latest, and the problem has gone.
Sorry for all he confusion and waste of time :-(.

@bergtwvd bergtwvd closed this as completed Jul 6, 2016
@mkuchin
Copy link
Owner

mkuchin commented Jul 7, 2016

No worries. Thanks for taking the time to contribute to the project!

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

No branches or pull requests

2 participants