Uploaded image for project: 'Project Quay'
  1. Project Quay
  2. PROJQUAY-897

Quay upload Docker file on console get 500 error code when use GCP Object Storage

XMLWordPrintable

      Description:

      This is an issue found when uploading Docker file on Quay Builds page, after choose "Start New Build", upload the target Docker File, Quay redirect to Quay 500 Error page. See error logs.

      Note: This issue can be reproduced with Quay 3.3.0

      Images:

      quay.io/quay/quay:v3.3.1-3

      quay.io/quay/quay-builder:v3.3.1-3

      Steps:

      1. Deploy Quay on GCP and use GCP Object Storage as Quay backend Storage
      2. Enable Quay Build on Quay-config app
      3. Login Quay Console 
      4. Create new Image repository
      5. Navigate to the new repository's build page
      6. Click "Start New Build"
      7. Upload Docker file

      Expected Results:

      Quay start new build by using the uploaded Docker file.

      Actual Results:

      Quay redirect to Quay 500 error page.

       

      Quay Logs of Quay App POD:

      8731 gunicorn-web stdout | 2020-07-23 07:15:14,918 [419] [ERROR] [gunicorn.error] Error handling request /api/v1/filedrop/
       8732 Traceback (most recent call last):
       8733  File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/gunicorn/workers/base_async.py", line 56, in handle
       8734   self.handle_request(listener_name, req, client, addr)
       8735  File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/gunicorn/workers/ggevent.py", line 160, in handle_request
       8736   addr)
       8737  File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/gunicorn/workers/base_async.py", line 107, in handle_request
       8738   respiter = self.wsgi(environ, resp.start_response)
       8739  File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/flask/app.py", line 2463, in _call_
       8740   return self.wsgi_app(environ, start_response)
       8741  File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/werkzeug/middleware/proxy_fix.py", line 232, in _call_
       8742   return self.app(environ, start_response)
       8743  File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/flask/app.py", line 2449, in wsgi_app
       8744   response = self.handle_exception(e)
       8745  File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/flask_restful/_init_.py", line 269, in error_router
       8746   return original_handler(e)
       8747  File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/flask/app.py", line 1866, in handle_exception
       8748   reraise(exc_type, exc_value, tb)
       8749  File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/flask_restful/_init_.py", line 266, in error_router
       8750   return self.handle_error(e)
       8751  File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/flask_restful/utils/cors.py", line 35, in wrapped_function
       8752   resp = make_response(f(*args, **kwargs))
       8753  File "/quay-registry/endpoints/api/_init_.py", line 61, in handle_error
       8754   return super(ApiExceptionHandlingApi, self).handle_error(error)
       8755  File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/flask/app.py", line 2446, in wsgi_app
       8756   response = self.full_dispatch_request()
       8757  File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/flask/app.py", line 1951, in full_dispatch_request
       8758   rv = self.handle_user_exception(e)
       8759  File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/flask_restful/_init_.py", line 269, in error_router
       8760   return original_handler(e)
       8761  File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/flask/app.py", line 1820, in handle_user_exception
       8762   reraise(exc_type, exc_value, tb)
       8763  File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/flask_restful/_init_.py", line 266, in error_router
       8764   return self.handle_error(e)
       8765  File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/flask_restful/utils/cors.py", line 35, in wrapped_function
       8766   resp = make_response(f(*args, **kwargs))
       8767  File "/quay-registry/endpoints/api/_init_.py", line 61, in handle_error
       8768   return super(ApiExceptionHandlingApi, self).handle_error(error)
       8769  File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/flask/app.py", line 1949, in full_dispatch_request
      8770   rv = self.dispatch_request()
       8771  File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/flask/app.py", line 1935, in dispatch_request
       8772   return self.view_functions[rule.endpoint](**req.view_args)
       8773  File "/quay-registry/endpoints/decorators.py", line 197, in wrapper
       8774   return func(*args, **kwargs)
       8775  File "/quay-registry/auth/decorators.py", line 65, in wrapper
       8776   return func(*args, **kwargs)
       8777  File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/flask_restful/utils/cors.py", line 35, in wrapped_function
       8778   resp = make_response(f(*args, **kwargs))
       8779  File "/quay-registry/endpoints/csrf.py", line 73, in wrapper
       8780   resp = func(*args, **kwargs)
       8781  File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/flask_restful/_init_.py", line 458, in wrapper
       8782   resp = resource(*args, **kwargs)
       8783  File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/flask/views.py", line 89, in view
       8784   return self.dispatch_request(*args, **kwargs)
       8785  File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/flask_restful/_init_.py", line 573, in dispatch_request
       8786   resp = meth(*args, **kwargs)
       8787  File "/quay-registry/endpoints/decorators.py", line 145, in wrapper
       8788   return func(*args, **kwargs)
       8789  File "/quay-registry/endpoints/decorators.py", line 120, in wrapper
       8790   return func(*args, **kwargs)
       8791  File "/quay-registry/endpoints/api/_init_.py", line 416, in wrapped
       8792   return func(self, *args, **kwargs)
       8793  File "/quay-registry/endpoints/api/build.py", line 544, in post
       8794   (url, file_id) = user_files.prepare_for_drop(mime_type, requires_cors=True)
       8795  File "/quay-registry/data/userfiles.py", line 94, in prepare_for_drop
       8796   url = self._storage.get_direct_upload_url(self._locations, path, mime_type, requires_cors)
       8797  File "/quay-registry/storage/distributedstorage.py", line 24, in wrapper
       8798   storage = self._storages[random.sample(locations, 1)[0]]
       8799 KeyError: 'default'
       8800 gunicorn-web stdout | 2020-07-23 07:15:14,922 [419] [INFO] [gunicorn.access] - - [23/Jul/2020:07:15:14 +0000] "POST /api/v1/filedrop/ HTTP/1.0" 500 0 "   " ""

        1. Quay 500 Error Page.png
          295 kB
          luffy zhang
        2. quaylogs331
          2.15 MB
          luffy zhang

              tomckay@redhat.com Thomas Mckay (Inactive)
              lzha1981 luffy zhang
              luffy zhang luffy zhang
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: