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

Clair 520 Unknown Error on 3.6 operator install

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • quay-v3.6.1
    • quay-v3.6.0
    • quay-operator
    • None
    • False
    • False
    • 0

    Description

      On a default operator installation when using the 3.6 default pre-release install, the following error is preventing clair scanning results from being returned after pushing new images to the deployment:

       

      Security scanner response failed OpenAPI validation
      gunicorn-web stdout | Traceback (most recent call last):
      gunicorn-web stdout |   File "/quay-registry/util/secscan/v4/api.py", line 340, in is_valid_response
      gunicorn-web stdout |     validate(resp.json(), schema, resolver=resolver)
      gunicorn-web stdout |   File "/usr/local/lib/python3.8/site-packages/requests/models.py", line 897, in json
      gunicorn-web stdout |     return complexjson.loads(self.text, kwargs)
      gunicorn-web stdout |   File "/usr/lib64/python3.8/json/init.py", line 357, in loads
      gunicorn-web stdout |     return _default_decoder.decode(s)
      gunicorn-web stdout |   File "/usr/lib64/python3.8/json/decoder.py", line 337, in decode
      gunicorn-web stdout |     obj, end = self.raw_decode(s, idx=_w(s, 0).end())
      gunicorn-web stdout |   File "/usr/lib64/python3.8/json/decoder.py", line 355, in raw_decode
      gunicorn-web stdout |     raise JSONDecodeError("Expecting value", s, err.value) from None
      gunicorn-web stdout | json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
      gunicorn-web stdout | 2021-10-18 18:35:17,993 [244] [DEBUG] [peewee] ('DELETE FROM "manifestsecuritystatus" WHERE ("manifestsecuritystatus"."id" = %s)', [43])
      gunicorn-web stdout | 2021-10-18 18:35:18,000 [244] [ERROR] [app] Exception on /api/v1/repository/j1vw/grafana/manifest/sha256:bbc8e0564ef5c7f08c1253314d91f2f5c3782b2e58eb1871fc6597609635fc3a/security [GET]
      gunicorn-web stdout | Traceback (most recent call last):
      gunicorn-web stdout |   File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1949, in full_dispatch_request
      gunicorn-web stdout |     rv = self.dispatch_request()
      gunicorn-web stdout |   File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1935, in dispatch_request
      gunicorn-web stdout |     return self.view_functions[rule.endpoint](req.view_args)
      gunicorn-web stdout |   File "/quay-registry/endpoints/decorators.py", line 212, in wrapper
      gunicorn-web stdout |     return func(args, *kwargs)
      gunicorn-web stdout |   File "/quay-registry/auth/decorators.py", line 65, in wrapper
      gunicorn-web stdout |     return func(args, *kwargs)
      gunicorn-web stdout |   File "/usr/local/lib/python3.8/site-packages/flask_restful/utils/cors.py", line 35, in wrapped_function
      gunicorn-web stdout |     resp = make_response(f(args, *kwargs))
      gunicorn-web stdout |   File "/quay-registry/endpoints/csrf.py", line 73, in wrapper
      gunicorn-web stdout |     resp = func(args, *kwargs)
      gunicorn-web stdout |   File "/usr/local/lib/python3.8/site-packages/flask_restful/init.py", line 458, in wrapper
      gunicorn-web stdout |     resp = resource(args, *kwargs)
      gunicorn-web stdout |   File "/usr/local/lib/python3.8/site-packages/flask/views.py", line 89, in view
      gunicorn-web stdout |     return self.dispatch_request(args, *kwargs)
      gunicorn-web stdout |   File "/usr/local/lib/python3.8/site-packages/flask_restful/init.py", line 573, in dispatch_request
      gunicorn-web stdout |     resp = meth(args, *kwargs)
      gunicorn-web stdout |   File "/quay-registry/endpoints/decorators.py", line 141, in wrapper
      gunicorn-web stdout |     return func(args, *kwargs)
      gunicorn-web stdout |   File "/quay-registry/endpoints/api/init.py", line 241, in wrapper
      gunicorn-web stdout |     return func(namespace, repository, args, *kwargs)
      gunicorn-web stdout |   File "/quay-registry/endpoints/decorators.py", line 120, in wrapper
      gunicorn-web stdout |     return func(args, *kwargs)
      gunicorn-web stdout |   File "/quay-registry/auth/decorators.py", line 65, in wrapper
      gunicorn-web stdout |     return func(args, *kwargs)
      gunicorn-web stdout |   File "/quay-registry/endpoints/api/init.py", line 295, in wrapped
      gunicorn-web stdout |     return func(self, namespace, repository, args, *kwargs)
      gunicorn-web stdout |   File "/quay-registry/endpoints/api/init.py", line 266, in wrapped
      gunicorn-web stdout |     return func(self, namespace_name, repository_name, args, *kwargs)
      gunicorn-web stdout |   File "/quay-registry/endpoints/api/init.py", line 228, in wrapper
      gunicorn-web stdout |     return func(self, args, *kwargs)
      gunicorn-web stdout |   File "/quay-registry/endpoints/api/secscan.py", line 141, in get
      gunicorn-web stdout |     return _security_info(manifest, parsed_args.vulnerabilities)
      gunicorn-web stdout |   File "/quay-registry/endpoints/api/secscan.py", line 67, in _security_info
      gunicorn-web stdout |     raise DownstreamIssue(result.scanner_request_error)
      gunicorn-web stdout | endpoints.exception.DownstreamIssue: 520 Unknown Error: Received incompatible response from security scanner
      gunicorn-web stdout | 2021-10-18 18:35:18,004 [244] [DEBUG] [app] Ending request: urn:request:b3f36aaf-40c7-41c7-9bd2-79744c741ea7 (/api/v1/repository/j1vw/grafana/manifest/sha256:bbc8e0564ef5c7f08c1253314d91f2f5c3782b2e58eb1871fc6597609635fc3a/security)
      gunicorn-web stdout | 2021-10-18 18:35:18,005 [244] [DEBUG] [data.database] Disconnecting from database.
      

       

      Looks like we are hitting the following line of code where this is failing and in the web ui it is returning "could not load security information".

       

      https://github.com/quay/quay/blob/8ef0aff83dffac3ae32938dc9105a5926a94c10d/endpoints/api/secscan.py#L55

      I will attach the quay and clair logs to the case but let me know if you need anything else from me or the customer.

      Attachments

        Activity

          People

            jonathankingfc Jonathan King
            rhn-support-dshumake Devon Shumaker
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: