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

API endpoint to for checking backfill for security scanner fails

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Minor
    • quay-v3.4.3
    • None
    • quay
    • None
    • 0

    Description

      Quay 3.4.0

      Perform a fresh install of Quay 3.4.0 , Once Quay/Clair are up push couple of images and wait for scan to complete.

      Late hit the endpoint https://\{Quay_hostname}/secscan/_backfill_status    

      It throws a "Internal server error" with following stacktrace

      gunicorn-web stdout | 2021-02-18 01:28:50,387 [312] [INFO] [gunicorn.access] 127.0.0.1 - - [18/Feb/2021:01:28:50 +0000] "GET /health/instance HTTP/1.0" 200 152 "-" "curl/7.61.1"
      nginx stdout | 127.0.0.1 () - - [18/Feb/2021:01:28:50 +0000] "GET /health/instance HTTP/2.0" 200 152 "-" "curl/7.61.1" (0.042 42 0.042)
      gunicorn-secscan stdout | 2021-02-18 01:28:51,809 [303] [ERROR] [gunicorn.error] Error handling request /secscan/_backfill_status
      gunicorn-secscan stdout | Traceback (most recent call last):
      gunicorn-secscan stdout |   File "/usr/local/lib/python3.8/site-packages/gunicorn/workers/base_async.py", line 55, in handle
      gunicorn-secscan stdout |     self.handle_request(listener_name, req, client, addr)
      gunicorn-secscan stdout |   File "/usr/local/lib/python3.8/site-packages/gunicorn/workers/ggevent.py", line 143, in handle_request
      gunicorn-secscan stdout |     super().handle_request(listener_name, req, sock, addr)
      gunicorn-secscan stdout |   File "/usr/local/lib/python3.8/site-packages/gunicorn/workers/base_async.py", line 106, in handle_request
      gunicorn-secscan stdout |     respiter = self.wsgi(environ, resp.start_response)
      gunicorn-secscan stdout |   File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 2463, in __call__
      gunicorn-secscan stdout |     return self.wsgi_app(environ, start_response)
      gunicorn-secscan stdout |   File "/usr/local/lib/python3.8/site-packages/werkzeug/middleware/proxy_fix.py", line 232, in __call__
      gunicorn-secscan stdout |     return self.app(environ, start_response)
      gunicorn-secscan stdout |   File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 2449, in wsgi_app
      gunicorn-secscan stdout |     response = self.handle_exception(e)
      gunicorn-secscan stdout |   File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1866, in handle_exception
      gunicorn-secscan stdout |     reraise(exc_type, exc_value, tb)
      gunicorn-secscan stdout |   File "/usr/local/lib/python3.8/site-packages/flask/_compat.py", line 39, in reraise
      gunicorn-secscan stdout |     raise value
      gunicorn-secscan stdout |   File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 2446, in wsgi_app
      gunicorn-secscan stdout |     response = self.full_dispatch_request()
      gunicorn-secscan stdout |   File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1951, in full_dispatch_request
      gunicorn-secscan stdout |     rv = self.handle_user_exception(e)
      gunicorn-secscan stdout |   File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1820, in handle_user_exception
      gunicorn-secscan stdout |     reraise(exc_type, exc_value, tb)
      gunicorn-secscan stdout |   File "/usr/local/lib/python3.8/site-packages/flask/_compat.py", line 39, in reraise
      gunicorn-secscan stdout |     raise value
      gunicorn-secscan stdout |   File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1949, in full_dispatch_request
      gunicorn-secscan stdout |     rv = self.dispatch_request()
      gunicorn-secscan stdout |   File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1935, in dispatch_request
      gunicorn-secscan stdout |     return self.view_functions[rule.endpoint](**req.view_args)
      gunicorn-secscan stdout |   File "/quay-registry/endpoints/secscan.py", line 76, in manifest_security_backfill_status
      gunicorn-secscan stdout |     return jsonify({"backfill_percent": mss_count / float(manifest_count)})
      gunicorn-secscan stdout | ZeroDivisionError: float division by zero
      gunicorn-secscan stdout | 2021-02-18 01:28:51,811 [303] [INFO] [gunicorn.access]  - - [18/Feb/2021:01:28:51 +0000] "GET /secscan/_backfill_status HTTP/1.0" 500 0 "-" "-"
      nginx stdout | 10.129.0.54 () - - [18/Feb/2021:01:28:51 +0000] "GET /secscan/_backfill_status HTTP/2.0" 500 141 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36" (0.016 748 0.017)
      

      Attachments

        Activity

          People

            tomckay@redhat.com Thomas Mckay
            rhn-support-dgangaia Dixit Gangaiah (Inactive)
            Dongbo Yan Dongbo Yan
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: