Can't push image to Ceph RADOS backend
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Docker Registry Charm |
Won't Fix
|
Wishlist
|
Unassigned |
Bug Description
Hi there!
We are having issues when pushing an image to a docker registry using Ceph RADOS' Swift compatible API. Specifically, when trying to push we see the following:
$ docker push 10.0.8.
The push refers to repository [10.0.8.
9c27e219663c: Pushing [======
received unexpected HTTP status: 500 Internal Server Error
We can see it retrying 4 times and then the 500 comes out. After the push we can see on the container some objects were created (container was empty right before pushing):
$ openstack object list docker_
files/docker/
files/docker/
files/docker/
files/docker/
files/docker/
files/docker/
files/docker/
files/docker/
files/docker/
files/docker/
files/docker/
files/docker/
files/docker/
files/docker/
files/docker/
It seems it's creating the triplet data/hashstate/
On the registry's output we found this while pushing:
{
"auth.user.name": "admin",
"err.code": "unknown",
"err.detail": "swift: Bad Request",
"err.message": "unknown error",
"go.version": "go1.11.2",
"http.
"http.
"http.
"http.
"http.
"http.
"http.
"http.
"http.
"http.
"level": "error",
"msg": "response completed with error",
"time": "2020-07-
"vars.name": "hello-world",
"vars.uuid": "e6614853-
}
Increasing Ceph's logging verbosity we spoted this as well:
2020-07-23 13:43:33.366 7f96ef8e6700 10 read_permissions on docker_
2f6461746172fa0
2020-07-23 13:43:33.366 7f96ef8e6700 20 op->ERRORHANDLER: err_no=-36 new_err_no=-36
And using tcpdump we managed to temporarily reproduce the issue (since the token expires):
$ curl -v --request HEAD http://
Warning: Setting custom HTTP method to HEAD with -X/--request may not work the
Warning: way you want. Consider using -I/--head instead.
* Trying 10.0.8.185...
* TCP_NODELAY set
* Connected to 10.0.8.185 (10.0.8.185) port 80 (#0)
> HEAD /swift/
> Host: 10.0.8.185
> User-Agent: curl/7.58.0
> Accept: */*
> X-Auth-Token: (edited)
>
< HTTP/1.1 400 Bad Request
< Content-Length: 22
< X-Trans-Id: tx0000000000000
< X-Openstack-
< Accept-Ranges: bytes
< Content-Type: text/plain; charset=utf-8
< Date: Thu, 23 Jul 2020 14:00:52 GMT
<
* transfer closed with 22 bytes remaining to read
* stopped the pause stream!
* Closing connection 0
curl: (18) transfer closed with 22 bytes remaining to read
Environment is openstack train running on lxd. Versions are (app, version, revision):
ceilometer 13.1.0 273
ceilometer-agent 13.1.0 263
ceph-mon 13.2.9 48
ceph-osd 13.2.9 303
ceph-radosgw 13.2.9 288
cinder 15.1.0 303
cinder-ceph 15.1.0 256
designate 9.0.0 44
designate-bind 9.11.3+dfsg 29
docker-registry 155
glance 19.0.2 297
gnocchi 4.3.4 40
heat 13.0.1 276
keystone 16.0.1 315
memcached 29
mysql 5.7.20 290
neutron-api 15.0.2 286
neutron-gateway 15.0.2 282
neutron-openvswitch 15.0.2 276
nova-cloud-
nova-compute 20.2.0 317
openstack-dashboard 16.1.0 304
placement 2.0.0 11
rabbitmq-server 3.6.10 103
Please let me know if you want me to perform some additional test or provide more information.
Thanks!
Changed in layer-docker-registry: | |
importance: | Undecided → High |
status: | New → Triaged |
I forgot to mention we found this bug that might be related: https:/ /bugzilla. redhat. com/show_ bug.cgi? id=1604979.