-
Bug
-
Resolution: Done
-
Critical
-
quay-v3.4.0
Description:
This is an issue found when configuring Quay's backend storage as Openstack Swift, push image was failed, checked Quay POD Logs, get error message "TypeError: '>' not supported between instances of 'NoneType' and 'int' "
docker push demo-quayecosystem-quay-quay-enterprise.apps.quay-285.0806-9n1.qe.rhcloud.com/quay/demo The push refers to repository [demo-quayecosystem-quay-quay-enterprise.apps.quay-285.0806-9n1.qe.rhcloud.com/quay/demo] ac078d8f08c6: Pushing [==================================================>] 3.584kB 6d196faff4ee: Pushing [==================================================>] 4.096kB ed39597d1556: Pushing [==================================================>] 3.072kB ff73b8119c50: Pushing [==================================================>] 63.27MB/63.27MB d0f104dc0a1f: Pushing [==================================================>] 69.22MB/69.22MB received unexpected HTTP status: 500 Internal Server Error
Quay Image: quay.io/projectquay/quay:50ba6130
Steps:
- Deploy Quay with backend storage as Openstack Swift
- Create new image repository
- Push image to new image repository
Expected Results:
Push image should complete successfully.
Actual Results:
Push image was failed with internal 500 error
Quay POD logs:
gunicorn-registry stdout | 2020-08-07 02:51:08,766 [326] [ERROR] [gunicorn.error] Error handling request /v2/quay/demo/blobs/uploads/5d7905f4-2c43-4eef-9942-69bee910b4dd
gunicorn-registry stdout | Traceback (most recent call last):
gunicorn-registry stdout | File "/usr/local/lib/python3.6/site-packages/gunicorn/workers/base_async.py", line 55, in handle
gunicorn-registry stdout | self.handle_request(listener_name, req, client, addr)
gunicorn-registry stdout | File "/usr/local/lib/python3.6/site-packages/gunicorn/workers/ggevent.py", line 143, in handle_request
gunicorn-registry stdout | super().handle_request(listener_name, req, sock, addr)
gunicorn-registry stdout | File "/usr/local/lib/python3.6/site-packages/gunicorn/workers/base_async.py", line 106, in handle_request
gunicorn-registry stdout | respiter = self.wsgi(environ, resp.start_response)
gunicorn-registry stdout | File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 2463, in _call_
gunicorn-registry stdout | return self.wsgi_app(environ, start_response)
gunicorn-registry stdout | File "/usr/local/lib/python3.6/site-packages/werkzeug/middleware/proxy_fix.py", line 232, in _call_
gunicorn-registry stdout | return self.app(environ, start_response)
gunicorn-registry stdout | File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 2449, in wsgi_app
gunicorn-registry stdout | response = self.handle_exception(e)
.....
gunicorn-registry stdout | return func(*args, **kwargs)
gunicorn-registry stdout | File "/quay-registry/endpoints/v2/blob.py", line 319, in upload_chunk
gunicorn-registry stdout | _upload_chunk(uploader)
gunicorn-registry stdout | File "/quay-registry/endpoints/v2/blob.py", line 485, in _upload_chunk
gunicorn-registry stdout | blob_uploader.upload_chunk(app.config, input_fp, start_offset, length)
gunicorn-registry stdout | File "/quay-registry/data/registry_model/blobuploader.py", line 232, in upload_chunk
gunicorn-registry stdout | content_type=BLOB_CONTENT_TYPE,
gunicorn-registry stdout | File "/quay-registry/storage/distributedstorage.py", line 27, in wrapper
gunicorn-registry stdout | return storage_func(*args, **kwargs)
gunicorn-registry stdout | File "/quay-registry/storage/swift.py", line 374, in stream_upload_chunk
gunicorn-registry stdout | uuid, offset, length, in_fp, storage_metadata, content_type
gunicorn-registry stdout | File "/quay-registry/storage/swift.py", line 412, in _stream_upload_segment
gunicorn-registry stdout | if self._retry_count > 0:
gunicorn-registry stdout | TypeError: '>' not supported between instances of 'NoneType' and 'int'
gunicorn-registry stdout | 2020-08-07 02:51:08,767 [326] [INFO] [gunicorn.access] - - [07/Aug/2020:02:51:08 +0000] "PATCH /v2/quay/demo/blobs/uploads/5d7905f4-2c43-4eef-9942-69bee910b4dd HTTP/1.1" 500 0 "" ""