Uploaded image for project: 'Automation Hub'
  1. Automation Hub
  2. AAH-1448

Remote Registry not working on Automation Hub while in HA

This issue belongs to an archived project. You can view it, but you can't modify it. Learn more

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Normal Normal
    • None
    • 2.1.1
    • Pulp
    • False
    • Hide

      None

      Show
      None
    • False
    • None

      While deploying Automation Hub in HA with shared filesystem, remote registry is not working properly.

      Steps to reproduce:

      1. Install Automation Hub on HA with NFS for `/var/lib/pulp`
      2. Add a new remote registry under Execution Environments > Remote Registries.
      3. Open the second Automation Hub node and try to load the Remote Registries page, it will be forever loading and no output will be shown.
      4. When trying to sync the remote registry you will get the below error:
        File "/usr/lib/python3.8/site-packages/pulpcore/tasking/pulpcore_worker.py", line 323, in _perform_task
          result = func(*args, **kwargs)
        File "/usr/lib/python3.8/site-packages/galaxy_ng/app/tasks/registry_sync.py", line 26, in sync_all_repos_in_registry
          registry = models.ContainerRegistryRemote.objects.get(pk=registry_pk)
        File "/usr/lib/python3.8/site-packages/django/db/models/manager.py", line 85, in manager_method
          return getattr(self.get_queryset(), name)(*args, **kwargs)
        File "/usr/lib/python3.8/site-packages/django/db/models/query.py", line 431, in get
          num = len(clone)
        File "/usr/lib/python3.8/site-packages/django/db/models/query.py", line 262, in __len__
          self._fetch_all()
        File "/usr/lib/python3.8/site-packages/django/db/models/query.py", line 1324, in _fetch_all
          self._result_cache = list(self._iterable_class(self))
        File "/usr/lib/python3.8/site-packages/django/db/models/query.py", line 68, in __iter__
          for row in compiler.results_iter(results):
        File "/usr/lib/python3.8/site-packages/django/db/models/sql/compiler.py", line 1122, in apply_converters
          value = converter(value, expression, connection)
        File "/usr/lib/python3.8/site-packages/pulpcore/app/models/fields.py", line 104, in from_db_value
          return force_str(self._fernet.decrypt(force_bytes(value)))
        File "/usr/lib64/python3.8/site-packages/cryptography/fernet.py", line 75, in decrypt
          return self._decrypt_data(data, timestamp, ttl)
        File "/usr/lib64/python3.8/site-packages/cryptography/fernet.py", line 117, in _decrypt_data
          self._verify_signature(data)
        File "/usr/lib64/python3.8/site-packages/cryptography/fernet.py", line 106, in _verify_signature
          raise InvalidToken 

      When checking the logs from second node you can see the following error while trying to check remote registry page:

       

      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]: pulp [None]: django.request:ERROR: Internal Server Error: /api/galaxy/_ui/v1/execution-environments/registries/
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]: Traceback (most recent call last):
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:  File "/usr/lib64/python3.8/site-packages/cryptography/fernet.py", line 104, in _verify_signature
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:    h.verify(data[-32:])
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:  File "/usr/lib64/python3.8/site-packages/cryptography/hazmat/primitives/hmac.py", line 66, in verify
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:    ctx.verify(signature)
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:  File "/usr/lib64/python3.8/site-packages/cryptography/hazmat/backends/openssl/hmac.py", line 74, in verify
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:    raise InvalidSignature("Signature did not match digest.")
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]: cryptography.exceptions.InvalidSignature: Signature did not match digest.
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]: During handling of the above exception, another exception occurred:
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]: Traceback (most recent call last):
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:  File "/usr/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:    response = get_response(request)
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:  File "/usr/lib/python3.8/site-packages/django/core/handlers/base.py", line 181, in _get_response
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:    response = wrapped_callback(request, *callback_args, **callback_kwargs)
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:  File "/usr/lib/python3.8/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:    return view_func(*args, **kwargs)
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:  File "/usr/lib/python3.8/site-packages/rest_framework/viewsets.py", line 125, in view
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:    return self.dispatch(request, *args, **kwargs)
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:  File "/usr/lib/python3.8/site-packages/rest_framework/views.py", line 509, in dispatch
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:    response = self.handle_exception(exc)
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:  File "/usr/lib/python3.8/site-packages/rest_framework/views.py", line 469, in handle_exception
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:    self.raise_uncaught_exception(exc)
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:  File "/usr/lib/python3.8/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:    raise exc
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:  File "/usr/lib/python3.8/site-packages/rest_framework/views.py", line 506, in dispatch
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:    response = handler(request, *args, **kwargs)
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:  File "/usr/lib/python3.8/site-packages/rest_framework/mixins.py", line 40, in list
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:    page = self.paginate_queryset(queryset)
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:  File "/usr/lib/python3.8/site-packages/rest_framework/generics.py", line 171, in paginate_queryset
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:    return self.paginator.paginate_queryset(queryset, self.request, view=self)
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:  File "/usr/lib/python3.8/site-packages/rest_framework/pagination.py", line 395, in paginate_queryset
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:    return list(queryset[self.offset:self.offset + self.limit])
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:  File "/usr/lib/python3.8/site-packages/django/db/models/query.py", line 262, in __len__
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:    self._fetch_all()
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:  File "/usr/lib/python3.8/site-packages/django/db/models/query.py", line 1324, in _fetch_all
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:    self._result_cache = list(self._iterable_class(self))
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:  File "/usr/lib/python3.8/site-packages/django/db/models/query.py", line 68, in __iter__
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:    for row in compiler.results_iter(results):
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:  File "/usr/lib/python3.8/site-packages/django/db/models/sql/compiler.py", line 1122, in apply_converters
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:    value = converter(value, expression, connection)
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:  File "/usr/lib/python3.8/site-packages/pulpcore/app/models/fields.py", line 104, in from_db_value
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:    return force_str(self._fernet.decrypt(force_bytes(value)))
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:  File "/usr/lib64/python3.8/site-packages/cryptography/fernet.py", line 75, in decrypt
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:    return self._decrypt_data(data, timestamp, ttl)
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:  File "/usr/lib64/python3.8/site-packages/cryptography/fernet.py", line 117, in _decrypt_data
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:    self._verify_signature(data)
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:  File "/usr/lib64/python3.8/site-packages/cryptography/fernet.py", line 106, in _verify_signature
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]:    raise InvalidToken
      Mar 17 16:03:24 ip-10-0-2-172 gunicorn[1070]: cryptography.fernet.InvalidToken 

              mdepaulo@redhat.com Mike DePaulo
              rhn-support-brsanche Bruno Sanchez
              Archiver:
              ranumula@redhat.com Raju Anumula

                Created:
                Updated:
                Resolved:
                Archived: