Pulp: Issueshttps://pulp.plan.io/https://pulp.plan.io/favicon.ico2021-10-18T10:26:00ZPulp
Planio Pulp - Issue #9515 (CLOSED - CURRENTRELEASE): content app doesn't survive PostgreSQL disconnect i...https://pulp.plan.io/issues/95152021-10-18T10:26:00Zevgenievgeni+pulp@redhat.com
<p>Ohai,</p>
<p>on pulpcore 3.14 (I didn't try newer yet), when the DB connection between pulpcore-content and PostgreSQL dies (e.g. because PostgreSQL was restarted), the content app seems not to notice this, and serves 500 errors:</p>
<pre>
pulpcore-content[659]: pulp [None]: asyncio:ERROR: Task exception was never retrieved
pulpcore-content[659]: future: exception=OperationalError('terminating connection due to administrator command\nserver closed the connection unexpectedly\n\tThis probably means the server terminated abnormally\n\tbefore or while processing the request.\n',)>
pulpcore-content[659]: Traceback (most recent call last):
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/backends/utils.py", line 84, in _execute
pulpcore-content[659]: return self.cursor.execute(sql, params)
pulpcore-content[659]: psycopg2.errors.AdminShutdown: terminating connection due to administrator command
pulpcore-content[659]: server closed the connection unexpectedly
pulpcore-content[659]: This probably means the server terminated abnormally
pulpcore-content[659]: before or while processing the request.
pulpcore-content[659]: The above exception was the direct cause of the following exception:
pulpcore-content[659]: Traceback (most recent call last):
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/pulpcore/content/__init__.py", line 45, in _heartbeat
pulpcore-content[659]: content_app_status, created = await loop.run_in_executor(None, get_status_blocking)
pulpcore-content[659]: File "/usr/lib64/python3.6/concurrent/futures/thread.py", line 56, in run
pulpcore-content[659]: result = self.fn(*self.args, **self.kwargs)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/pulpcore/content/__init__.py", line 42, in get_status_blocking
pulpcore-content[659]: return ContentAppStatus.objects.get_or_create(name=name)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/manager.py", line 82, in manager_method
pulpcore-content[659]: return getattr(self.get_queryset(), name)(*args, **kwargs)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/query.py", line 538, in get_or_create
pulpcore-content[659]: return self.get(**kwargs), False
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/query.py", line 402, in get
pulpcore-content[659]: num = len(clone)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/query.py", line 256, in __len__
pulpcore-content[659]: self._fetch_all()
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/query.py", line 1242, in _fetch_all
pulpcore-content[659]: self._result_cache = list(self._iterable_class(self))
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/query.py", line 55, in __iter__
pulpcore-content[659]: results = compiler.execute_sql(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1142, in execute_sql
pulpcore-content[659]: cursor.execute(sql, params)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/backends/utils.py", line 67, in execute
pulpcore-content[659]: return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/backends/utils.py", line 76, in _execute_with_wrappers
pulpcore-content[659]: return executor(sql, params, many, context)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/backends/utils.py", line 84, in _execute
pulpcore-content[659]: return self.cursor.execute(sql, params)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/utils.py", line 89, in __exit__
pulpcore-content[659]: raise dj_exc_value.with_traceback(traceback) from exc_value
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/backends/utils.py", line 84, in _execute
pulpcore-content[659]: return self.cursor.execute(sql, params)
pulpcore-content[659]: django.db.utils.OperationalError: terminating connection due to administrator command
pulpcore-content[659]: server closed the connection unexpectedly
pulpcore-content[659]: This probably means the server terminated abnormally
pulpcore-content[659]: before or while processing the request.
pulpcore-content[659]: pulp [None]: asyncio:ERROR: Task exception was never retrieved
pulpcore-content[659]: future: exception=OperationalError('terminating connection due to administrator command\nserver closed the connection unexpectedly\n\tThis probably means the server terminated abnormally\n\tbefore or while processing the request.\n',)>
pulpcore-content[659]: Traceback (most recent call last):
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/backends/utils.py", line 84, in _execute
pulpcore-content[659]: return self.cursor.execute(sql, params)
pulpcore-content[659]: psycopg2.errors.AdminShutdown: terminating connection due to administrator command
pulpcore-content[659]: server closed the connection unexpectedly
pulpcore-content[659]: This probably means the server terminated abnormally
pulpcore-content[659]: before or while processing the request.
pulpcore-content[659]: The above exception was the direct cause of the following exception:
pulpcore-content[659]: Traceback (most recent call last):
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/pulpcore/content/__init__.py", line 45, in _heartbeat
pulpcore-content[659]: content_app_status, created = await loop.run_in_executor(None, get_status_blocking)
pulpcore-content[659]: File "/usr/lib64/python3.6/concurrent/futures/thread.py", line 56, in run
pulpcore-content[659]: result = self.fn(*self.args, **self.kwargs)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/pulpcore/content/__init__.py", line 42, in get_status_blocking
pulpcore-content[659]: return ContentAppStatus.objects.get_or_create(name=name)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/manager.py", line 82, in manager_method
pulpcore-content[659]: return getattr(self.get_queryset(), name)(*args, **kwargs)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/query.py", line 538, in get_or_create
pulpcore-content[659]: return self.get(**kwargs), False
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/query.py", line 402, in get
pulpcore-content[659]: num = len(clone)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/query.py", line 256, in __len__
pulpcore-content[659]: self._fetch_all()
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/query.py", line 1242, in _fetch_all
pulpcore-content[659]: self._result_cache = list(self._iterable_class(self))
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/query.py", line 55, in __iter__
pulpcore-content[659]: results = compiler.execute_sql(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1142, in execute_sql
pulpcore-content[659]: cursor.execute(sql, params)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/backends/utils.py", line 67, in execute
pulpcore-content[659]: return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/backends/utils.py", line 76, in _execute_with_wrappers
pulpcore-content[659]: return executor(sql, params, many, context)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/backends/utils.py", line 84, in _execute
pulpcore-content[659]: return self.cursor.execute(sql, params)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/utils.py", line 89, in __exit__
pulpcore-content[659]: raise dj_exc_value.with_traceback(traceback) from exc_value
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/backends/utils.py", line 84, in _execute
pulpcore-content[659]: return self.cursor.execute(sql, params)
pulpcore-content[659]: django.db.utils.OperationalError: terminating connection due to administrator command
pulpcore-content[659]: server closed the connection unexpectedly
pulpcore-content[659]: This probably means the server terminated abnormally
pulpcore-content[659]: before or while processing the request.
pulpcore-content[659]: pulp [None]: asyncio:ERROR: Task exception was never retrieved
pulpcore-content[659]: future: exception=OperationalError('terminating connection due to administrator command\nserver closed the connection unexpectedly\n\tThis probably means the server terminated abnormally\n\tbefore or while processing the request.\n',)>
pulpcore-content[659]: Traceback (most recent call last):
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/backends/utils.py", line 84, in _execute
pulpcore-content[659]: return self.cursor.execute(sql, params)
pulpcore-content[659]: psycopg2.errors.AdminShutdown: terminating connection due to administrator command
pulpcore-content[659]: server closed the connection unexpectedly
pulpcore-content[659]: This probably means the server terminated abnormally
pulpcore-content[659]: before or while processing the request.
pulpcore-content[659]: The above exception was the direct cause of the following exception:
pulpcore-content[659]: Traceback (most recent call last):
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/pulpcore/content/__init__.py", line 45, in _heartbeat
pulpcore-content[659]: content_app_status, created = await loop.run_in_executor(None, get_status_blocking)
pulpcore-content[659]: File "/usr/lib64/python3.6/concurrent/futures/thread.py", line 56, in run
pulpcore-content[659]: result = self.fn(*self.args, **self.kwargs)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/pulpcore/content/__init__.py", line 42, in get_status_blocking
pulpcore-content[659]: return ContentAppStatus.objects.get_or_create(name=name)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/manager.py", line 82, in manager_method
pulpcore-content[659]: return getattr(self.get_queryset(), name)(*args, **kwargs)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/query.py", line 538, in get_or_create
pulpcore-content[659]: return self.get(**kwargs), False
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/query.py", line 402, in get
pulpcore-content[659]: num = len(clone)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/query.py", line 256, in __len__
pulpcore-content[659]: self._fetch_all()
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/query.py", line 1242, in _fetch_all
pulpcore-content[659]: self._result_cache = list(self._iterable_class(self))
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/query.py", line 55, in __iter__
pulpcore-content[659]: results = compiler.execute_sql(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1142, in execute_sql
pulpcore-content[659]: cursor.execute(sql, params)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/backends/utils.py", line 67, in execute
pulpcore-content[659]: return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/backends/utils.py", line 76, in _execute_with_wrappers
pulpcore-content[659]: return executor(sql, params, many, context)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/backends/utils.py", line 84, in _execute
pulpcore-content[659]: return self.cursor.execute(sql, params)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/utils.py", line 89, in __exit__
pulpcore-content[659]: raise dj_exc_value.with_traceback(traceback) from exc_value
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/backends/utils.py", line 84, in _execute
pulpcore-content[659]: return self.cursor.execute(sql, params)
pulpcore-content[659]: django.db.utils.OperationalError: terminating connection due to administrator command
pulpcore-content[659]: server closed the connection unexpectedly
pulpcore-content[659]: This probably means the server terminated abnormally
pulpcore-content[659]: before or while processing the request.
pulpcore-content[659]: pulp [None]: asyncio:ERROR: Task exception was never retrieved
pulpcore-content[659]: future: exception=OperationalError('terminating connection due to administrator command\nserver closed the connection unexpectedly\n\tThis probably means the server terminated abnormally\n\tbefore or while processing the request.\n',)>
pulpcore-content[659]: Traceback (most recent call last):
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/backends/utils.py", line 84, in _execute
pulpcore-content[659]: return self.cursor.execute(sql, params)
pulpcore-content[659]: psycopg2.errors.AdminShutdown: terminating connection due to administrator command
pulpcore-content[659]: server closed the connection unexpectedly
pulpcore-content[659]: This probably means the server terminated abnormally
pulpcore-content[659]: before or while processing the request.
pulpcore-content[659]: The above exception was the direct cause of the following exception:
pulpcore-content[659]: Traceback (most recent call last):
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/pulpcore/content/__init__.py", line 45, in _heartbeat
pulpcore-content[659]: content_app_status, created = await loop.run_in_executor(None, get_status_blocking)
pulpcore-content[659]: File "/usr/lib64/python3.6/concurrent/futures/thread.py", line 56, in run
pulpcore-content[659]: result = self.fn(*self.args, **self.kwargs)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/pulpcore/content/__init__.py", line 42, in get_status_blocking
pulpcore-content[659]: return ContentAppStatus.objects.get_or_create(name=name)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/manager.py", line 82, in manager_method
pulpcore-content[659]: return getattr(self.get_queryset(), name)(*args, **kwargs)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/query.py", line 538, in get_or_create
pulpcore-content[659]: return self.get(**kwargs), False
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/query.py", line 402, in get
pulpcore-content[659]: num = len(clone)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/query.py", line 256, in __len__
pulpcore-content[659]: self._fetch_all()
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/query.py", line 1242, in _fetch_all
pulpcore-content[659]: self._result_cache = list(self._iterable_class(self))
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/query.py", line 55, in __iter__
pulpcore-content[659]: results = compiler.execute_sql(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1142, in execute_sql
pulpcore-content[659]: cursor.execute(sql, params)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/backends/utils.py", line 67, in execute
pulpcore-content[659]: return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/backends/utils.py", line 76, in _execute_with_wrappers
pulpcore-content[659]: return executor(sql, params, many, context)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/backends/utils.py", line 84, in _execute
pulpcore-content[659]: return self.cursor.execute(sql, params)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/utils.py", line 89, in __exit__
pulpcore-content[659]: raise dj_exc_value.with_traceback(traceback) from exc_value
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/backends/utils.py", line 84, in _execute
pulpcore-content[659]: return self.cursor.execute(sql, params)
pulpcore-content[659]: django.db.utils.OperationalError: terminating connection due to administrator command
pulpcore-content[659]: server closed the connection unexpectedly
pulpcore-content[659]: This probably means the server terminated abnormally
pulpcore-content[659]: before or while processing the request.
pulpcore-content[659]: pulp [None]: asyncio:ERROR: Task exception was never retrieved
pulpcore-content[659]: future: exception=OperationalError('terminating connection due to administrator command\nserver closed the connection unexpectedly\n\tThis probably means the server terminated abnormally\n\tbefore or while processing the request.\n',)>
pulpcore-content[659]: Traceback (most recent call last):
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/backends/utils.py", line 84, in _execute
pulpcore-content[659]: return self.cursor.execute(sql, params)
pulpcore-content[659]: psycopg2.errors.AdminShutdown: terminating connection due to administrator command
pulpcore-content[659]: server closed the connection unexpectedly
pulpcore-content[659]: This probably means the server terminated abnormally
pulpcore-content[659]: before or while processing the request.
pulpcore-content[659]: The above exception was the direct cause of the following exception:
pulpcore-content[659]: Traceback (most recent call last):
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/pulpcore/content/__init__.py", line 45, in _heartbeat
pulpcore-content[659]: content_app_status, created = await loop.run_in_executor(None, get_status_blocking)
pulpcore-content[659]: File "/usr/lib64/python3.6/concurrent/futures/thread.py", line 56, in run
pulpcore-content[659]: result = self.fn(*self.args, **self.kwargs)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/pulpcore/content/__init__.py", line 42, in get_status_blocking
pulpcore-content[659]: return ContentAppStatus.objects.get_or_create(name=name)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/manager.py", line 82, in manager_method
pulpcore-content[659]: return getattr(self.get_queryset(), name)(*args, **kwargs)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/query.py", line 538, in get_or_create
pulpcore-content[659]: return self.get(**kwargs), False
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/query.py", line 402, in get
pulpcore-content[659]: num = len(clone)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/query.py", line 256, in __len__
pulpcore-content[659]: self._fetch_all()
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/query.py", line 1242, in _fetch_all
pulpcore-content[659]: self._result_cache = list(self._iterable_class(self))
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/query.py", line 55, in __iter__
pulpcore-content[659]: results = compiler.execute_sql(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1142, in execute_sql
pulpcore-content[659]: cursor.execute(sql, params)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/backends/utils.py", line 67, in execute
pulpcore-content[659]: return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/backends/utils.py", line 76, in _execute_with_wrappers
pulpcore-content[659]: return executor(sql, params, many, context)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/backends/utils.py", line 84, in _execute
pulpcore-content[659]: return self.cursor.execute(sql, params)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/utils.py", line 89, in __exit__
pulpcore-content[659]: raise dj_exc_value.with_traceback(traceback) from exc_value
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/backends/utils.py", line 84, in _execute
pulpcore-content[659]: return self.cursor.execute(sql, params)
pulpcore-content[659]: django.db.utils.OperationalError: terminating connection due to administrator command
pulpcore-content[659]: server closed the connection unexpectedly
pulpcore-content[659]: This probably means the server terminated abnormally
pulpcore-content[659]: before or while processing the request.
pulpcore-content[659]: [2021-10-18 10:18:25 +0000] [1138] [ERROR] Error handling request
pulpcore-content[659]: Traceback (most recent call last):
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/backends/utils.py", line 84, in _execute
pulpcore-content[659]: return self.cursor.execute(sql, params)
pulpcore-content[659]: psycopg2.errors.AdminShutdown: terminating connection due to administrator command
pulpcore-content[659]: server closed the connection unexpectedly
pulpcore-content[659]: This probably means the server terminated abnormally
pulpcore-content[659]: before or while processing the request.
pulpcore-content[659]: The above exception was the direct cause of the following exception:
pulpcore-content[659]: Traceback (most recent call last):
pulpcore-content[659]: File "/usr/lib64/python3.6/site-packages/aiohttp/web_protocol.py", line 422, in _handle_request
pulpcore-content[659]: resp = await self._request_handler(request)
pulpcore-content[659]: File "/usr/lib64/python3.6/site-packages/aiohttp/web_app.py", line 499, in _handle
pulpcore-content[659]: resp = await handler(request)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/pulpcore/content/handler.py", line 142, in list_distributions
pulpcore-content[659]: base_paths = await loop.run_in_executor(None, get_base_paths_blocking)
pulpcore-content[659]: File "/usr/lib64/python3.6/concurrent/futures/thread.py", line 56, in run
pulpcore-content[659]: result = self.fn(*self.args, **self.kwargs)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/pulpcore/content/handler.py", line 135, in get_base_paths_blocking
pulpcore-content[659]: base_paths = list(Distribution.objects.values_list("base_path", flat=True))
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/query.py", line 274, in __iter__
pulpcore-content[659]: self._fetch_all()
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/query.py", line 1242, in _fetch_all
pulpcore-content[659]: self._result_cache = list(self._iterable_class(self))
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/query.py", line 182, in __iter__
pulpcore-content[659]: for row in compiler.results_iter(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size):
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1094, in results_iter
pulpcore-content[659]: results = self.execute_sql(MULTI, chunked_fetch=chunked_fetch, chunk_size=chunk_size)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1142, in execute_sql
pulpcore-content[659]: cursor.execute(sql, params)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/backends/utils.py", line 67, in execute
pulpcore-content[659]: return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/backends/utils.py", line 76, in _execute_with_wrappers
pulpcore-content[659]: return executor(sql, params, many, context)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/backends/utils.py", line 84, in _execute
pulpcore-content[659]: return self.cursor.execute(sql, params)
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/utils.py", line 89, in __exit__
pulpcore-content[659]: raise dj_exc_value.with_traceback(traceback) from exc_value
pulpcore-content[659]: File "/usr/lib/python3.6/site-packages/django/db/backends/utils.py", line 84, in _execute
pulpcore-content[659]: return self.cursor.execute(sql, params)
pulpcore-content[659]: django.db.utils.OperationalError: terminating connection due to administrator command
pulpcore-content[659]: server closed the connection unexpectedly
pulpcore-content[659]: This probably means the server terminated abnormally
pulpcore-content[659]: before or while processing the request.
pulpcore-content[659]: [18/Oct/2021:10:18:25 +0000] "GET /pulp/content/ HTTP/1.1" 500 244 "-" "curl/7.29.0"
</pre> Debian Support - Task #9175 (CLOSED - CURRENTRELEASE): Backport 9162 to 2.14https://pulp.plan.io/issues/91752021-07-29T09:20:22Zquba42
<p><a href="https://github.com/pulp/community/discussions/59" class="external">https://github.com/pulp/community/discussions/59</a></p> Debian Support - Task #9162 (CLOSED - CURRENTRELEASE): Comply with orphan clean changes made in p...https://pulp.plan.io/issues/91622021-07-28T08:52:57Zquba42
<p><a href="https://github.com/pulp/community/discussions/59" class="external">https://github.com/pulp/community/discussions/59</a></p> Debian Support - Task #8682 (CLOSED - CURRENTRELEASE): Migrate to new Distribution model for pulp...https://pulp.plan.io/issues/86822021-05-03T12:21:35Zquba42Debian Support - Task #8388 (CLOSED - CURRENTRELEASE): Handle ALLOWED_CONTENT_CHECKSUMS settinghttps://pulp.plan.io/issues/83882021-03-11T14:59:24Zquba42
<p>Right now the pulp_deb plugin is dependend on the following hashs being present on artifacts: md5, sha1, sha256, sha512.</p>
<p>Starting with pulpcore 3.11 will exclude md5 and sha1 from ALLOWED_CONTENT_CHECKSUMS by default.</p>
<p>Pulp deb will need to handle this gracefully. There is still some debate on whether pulp_deb makes sense without md5 feature wise. As a result, the solution may need to include demanding or encouraging a different configuration from pulp_deb users than the pulpcore default configuration.</p>
<p>See the following mailing list threads:</p>
<ul>
<li><a href="https://listman.redhat.com/archives/pulp-dev/2021-February/msg00017.html" class="external">https://listman.redhat.com/archives/pulp-dev/2021-February/msg00017.html</a></li>
<li><a href="https://listman.redhat.com/archives/pulp-dev/2021-March/msg00013.html" class="external">https://listman.redhat.com/archives/pulp-dev/2021-March/msg00013.html</a></li>
</ul> RPM Support - Issue #7116 (CLOSED - CURRENTRELEASE): Modules in errata not exposed by pulp3https://pulp.plan.io/issues/71162020-07-09T15:43:42Zpaji@redhat.compaji@redhat.com
<ol>
<li>Sync the appstream repo</li>
<li>Get the errata reference associated to errata_id = RHBA-2019:1530 or any other modular errata</li>
<li>run (make sure to update the errata id)</li>
</ol>
<pre><code> curl https://`hostname`/pulp/api/v3/content/rpm/advisories/9ff192a4-906f-4efd-ba29-55222eead0d8/ --cert
/etc/pki/katello/certs/pulp-client.crt --key /etc/pki/katello/private/pulp-client.key | jq
</code></pre>
<ol start="4">
<li>Look for pkglist attribute</li>
</ol>
<p>Expected:
pkglist has both module references and package references.</p>
<p>Actual:
Notice that module entries are missing from the package list</p>
<p>Additional Info:</p>
<pre><code> RHBA-2019:1530 is an errata that has the following module in its package list
<update status="final" from="release-engineering@redhat.com" version="1" type="bugfix">
<id>RHBA-2019:1530</id>
......
<pkglist>
<collection short="rhel-8-for-x86_64-appstream-rpms__8_1_virt">
<name>rhel-8-for-x86_64-appstream-rpms__8_1_virt</name>
<module stream="rhel" version="8000020190529063309" arch="x86_64" name="virt" context="55190bc5" />
........
</update>
</code></pre>
<p>Yet pulp does not show me any module name in the custom json</p> Pulp - Test #4359 (CLOSED - COMPLETE): 2.18.1 Testinghttps://pulp.plan.io/issues/43592019-01-29T16:02:43Zbherring
<a name="Notes"></a>
<h2 >Notes<a href="#Notes" class="wiki-anchor">¶</a></h2>
<p>Testing Coverage for 2.18.1 will consist of the following</p>
<ul>
<li>Migration/Upgrade Testing
<ul>
<li>2.17.0 --> 2.18.1
<ul>
<li>FIPS</li>
<li>Non-FIPS</li>
</ul>
</li>
</ul>
</li>
<li>2.18.1 Functional Testing Suite
<ul>
<li>FIPS</li>
<li>Non-FIPS</li>
</ul>
</li>
</ul> Pulp - Test #4357 (CLOSED - COMPLETE): Pulp 2.19 master pulled epel django instead of pulp 2 djangohttps://pulp.plan.io/issues/43572019-01-29T12:41:38Zbherring
<a name="Problem"></a>
<h2 >Problem<a href="#Problem" class="wiki-anchor">¶</a></h2>
<p>When running nightly rhel76-fips testing, there were 500 errors [0] on jenkins tests since 1/23 and issues in journalctl with django [1].</p>
<p>After talking with asmacdo and daviddavis, it appears this may be a django being pulled from EPEL and not from our Pulp 2 repos on build [2][3]</p>
<a name="Testing"></a>
<h2 >Testing<a href="#Testing" class="wiki-anchor">¶</a></h2>
<p>It was determined this was the result of EPEL django precedence over the pulp.repo version that was built. This issue has been seen before.</p>
<p>Forced installation of the <strong>python2-django-1.11.17-1</strong> from the fedorapeople repo [3] and restart of services (or with a hammer of <strong>shutdown now -r</strong>) resulted in a functioning pulp install.</p>
<pre><code>[root@rhel76-fips ~]# journalctl -f
-- Logs begin at Mon 2019-01-28 12:33:13 EST. --
Jan 28 12:34:38 rhel76-fips pulp[5046]: kombu.transport.qpid:INFO: Connected to qpid with SASL mechanism ANONYMOUS
Jan 28 12:34:38 rhel76-fips pulp[5046]: django.request:ERROR: (5046-27424) Internal Server Error: /pulp/api/v2/status/
Jan 28 12:34:38 rhel76-fips pulp[5046]: django.request:ERROR: (5046-27424) Traceback (most recent call last):
Jan 28 12:34:38 rhel76-fips pulp[5046]: django.request:ERROR: (5046-27424) File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py", line 131, in get_response
Jan 28 12:34:38 rhel76-fips pulp[5046]: django.request:ERROR: (5046-27424) response = middleware_method(request, response)
Jan 28 12:34:38 rhel76-fips pulp[5046]: django.request:ERROR: (5046-27424) File "/usr/lib/python2.7/site-packages/django/middleware/http.py", line 23, in process_response
Jan 28 12:34:38 rhel76-fips pulp[5046]: django.request:ERROR: (5046-27424) set_response_etag(response)
Jan 28 12:34:38 rhel76-fips pulp[5046]: django.request:ERROR: (5046-27424) File "/usr/lib/python2.7/site-packages/django/utils/cache.py", line 109, in set_response_etag
Jan 28 12:34:38 rhel76-fips pulp[5046]: django.request:ERROR: (5046-27424) response['ETag'] = quote_etag(hashlib.md5(response.content).hexdigest())
Jan 28 12:34:38 rhel76-fips pulp[5046]: django.request:ERROR: (5046-27424) ValueError: error:060800A3:digital envelope routines:EVP_DigestInit_ex:disabled for fips
</code></pre>
<a name="Actions"></a>
<h2 >Actions<a href="#Actions" class="wiki-anchor">¶</a></h2>
<p>Pulp-dev determined this issue as a low priority issue where documentation exercise may happen as a result of this issue.</p>
<p>For QE, this is a critical breakage of CI as the ansible install fails on FIPS installation and puts the box into a non-testable state. QE will be opening a related Urgent test tracker to fix the issue in the pulp-ci installer to fix mission critical work.</p>
<a name="References"></a>
<h2 >References<a href="#References" class="wiki-anchor">¶</a></h2>
<p>[0] - <a href="https://paste.fedoraproject.org/paste/bPRtYPa4ZCLShrZ7VUMqMQ" class="external">https://paste.fedoraproject.org/paste/bPRtYPa4ZCLShrZ7VUMqMQ</a><br>
[1] - <a href="https://pulp-jenkins.rhev-ci-vms.eng.rdu2.redhat.com/view/Pulp%202%20-%20Master/job/pulp-2-master-dev-rhel7-fips/228/" class="external">https://pulp-jenkins.rhev-ci-vms.eng.rdu2.redhat.com/view/Pulp%202%20-%20Master/job/pulp-2-master-dev-rhel7-fips/228/</a><br>
[2] - <a href="https://paste.fedoraproject.org/paste/6eHTS1Uc3NkC0hohvKe-TA" class="external">https://paste.fedoraproject.org/paste/6eHTS1Uc3NkC0hohvKe-TA</a> [from the affected 2.19a1-nightly box under test<br>
[3] - 2.11.17-1 <a href="https://repos.fedorapeople.org/repos/pulp/pulp/v2/testing/automation/2.19/stage/7Server/x86_64/" class="external">https://repos.fedorapeople.org/repos/pulp/pulp/v2/testing/automation/2.19/stage/7Server/x86_64/</a><br>
[4] - <a href="https://wiki.centos.org/PackageManagement/Yum/Priorities" class="external">https://wiki.centos.org/PackageManagement/Yum/Priorities</a></p> RPM Support - Test #4351 (CLOSED - COMPLETE): modules.yaml reference in repomd.xml does not use s...https://pulp.plan.io/issues/43512019-01-24T14:13:07Zbherring
<p>A report from upstream katello (<a href="https://projects.theforeman.org/issues/25529" class="external">https://projects.theforeman.org/issues/25529</a>) indicates that pulp generates a repomd.xml file that claims to use the checksum type that has been set on the publisher, but in fact is not using that:</p>
<p>In this example it purports to have used a sha1 checksum, but in fact its actually a sha256 checksum:</p>
<pre><code> <data type="modules">
<location href="repodata/824ffe238f202a0612ecbb2b0c0459dc289a7ef47adb1f26406453d41f476449-modules.yaml.gz"/>
<timestamp>1542811864</timestamp>
<size>33</size>
<checksum type="sha1">824ffe238f202a0612ecbb2b0c0459dc289a7ef47adb1f26406453d41f476449</checksum>
<open-size>0</open-size>
<open-checksum type="sha1">da39a3ee5e6b4b0d3255bfef95601890afd80709</open-checksum>
</data>
</code></pre>
<p>To reproduce:</p>
<p>1. create and sync a yum repository<br>
2. set a checksum type of sha1<br>
3. publish the repository</p> RPM Support - Test #4350 (CLOSED - COMPLETE): modules.yaml file is generated on repository with n...https://pulp.plan.io/issues/43502019-01-24T14:12:25Zbherring
<p>It seems that syncing and publishing a repository without any modularity info, still results in a modules.yaml being generated.</p>
<p>See: <a href="https://projects.theforeman.org/issues/25529" class="external">https://projects.theforeman.org/issues/25529</a> for more information</p> RPM Support - Test #4269 (CLOSED - COMPLETE): Recursive and conservative recursive copyhttps://pulp.plan.io/issues/42692018-12-14T17:36:04Zmilan
<a name="Description"></a>
<h2 >Description<a href="#Description" class="wiki-anchor">¶</a></h2>
<p>With the <a href="https://github.com/pulp/pulp_rpm/pull/1226" class="external">fix</a> for the Issue <a class="issue tracker-1 status-11 priority-6 priority-default closed" title="Issue: Regression Pulp 2.17.1: recursive copy of RPMs does not copy partially resolvable dependencies (CLOSED - CURRENTRELEASE)" href="https://pulp.plan.io/issues/4152">#4152</a>, the default behaviour of recursive copy changes back to the state before 2.17, rendering the test case <a href="https://github.com/PulpQE/Pulp-2-Tests/blob/c9277928c2788bced8d0ae3f630a46b6162fc4c9/pulp_2_tests/tests/rpm/api_v2/test_rich_weak_dependencies.py#L183" class="external">CopyRecursiveUnitsTestCase</a> broken.<br>
The behaviour specified in the <a href="https://github.com/PulpQE/pulp-smash/issues/1090" class="external">pulp smash issue 1090</a>, as requested in the Issue <a class="issue tracker-3 status-11 priority-6 priority-default closed" title="Story: Support more conservative dependency solving (CLOSED - CURRENTRELEASE)" href="https://pulp.plan.io/issues/2478">#2478</a>, is now optional and can be triggered by providing the <code>"recursive_conservative": true</code> config override instead of the default <code>"recursive": true</code>.<br>
With that setting, the test case <a href="https://github.com/PulpQE/Pulp-2-Tests/blob/c9277928c2788bced8d0ae3f630a46b6162fc4c9/pulp_2_tests/tests/rpm/api_v2/test_rich_weak_dependencies.py#L183" class="external">CopyRecursiveUnitsTestCase</a> should agin pass as is.</p>
<a name="Proposed-solution"></a>
<h2 >Proposed solution<a href="#Proposed-solution" class="wiki-anchor">¶</a></h2>
<p>Split the test case <a href="https://github.com/PulpQE/Pulp-2-Tests/blob/c9277928c2788bced8d0ae3f630a46b6162fc4c9/pulp_2_tests/tests/rpm/api_v2/test_rich_weak_dependencies.py#L183" class="external">CopyRecursiveUnitsTestCase</a> such that it asserts:</p>
<ul>
<li>a failure in the terms described in <a href="https://github.com/PulpQE/pulp-smash/issues/1090" class="external">pulp smash issue 1090</a> with the default <code>"recursive": true</code> config override setting</li>
<li>a success once the non-default <code>"recursive_conservative": true</code> config override setting is provided</li>
</ul> Pulp - Test #4258 (CLOSED - COMPLETE): Publishing incorrect branch head.https://pulp.plan.io/issues/42582018-12-11T13:33:31Zbherring
<a name="Notes"></a>
<h2 >Notes<a href="#Notes" class="wiki-anchor">¶</a></h2>
<ul>
<li>ostree smash test? ping jeff</li>
</ul> Pulp - Story #3778 (CLOSED - CURRENTRELEASE): [Epic] As a user, I can run Pulp 3 in a FIPS-enable...https://pulp.plan.io/issues/37782018-06-21T16:13:49ZdaviddavisPackaging - Task #2228 (CLOSED - CURRENTRELEASE): Improve nodepool node launch demand calculationhttps://pulp.plan.io/issues/22282016-09-02T19:12:45Zsemyerssean.myers@redhat.com
<p>Because of a needed tweak to nodepool[0] we already running a fork. After chatting with elyezer, there are some further improvements I'd like to include on the fork.</p>
<p>Currently, nodepoold uses a tool called "geard" to determine node launch demand, based on the configure label demands of queued jobs. I believe that when nodepool was first being used, this information was not obtainable via the Jenkins API. Now, however, it is[1]. Furthermore, the geard integration simply doesn't work, afaict, for our use-case, unless we want to go nuts and bring in more pieces of openstack automation (e.g. zuul).</p>
<p>I've already done some preliminary work[2] to try to determine label demand based on the current jenkins build queue, so all that remains is wiring it into the nodepool fork and getting rid of the geard stuff that doesn't meet our needs.</p>
<p>[0]: <a href="https://github.com/seandst/nodepool/commit/1a807c8def36d62e80aaaa0e4e961a176e9ce746" class="external">https://github.com/seandst/nodepool/commit/1a807c8def36d62e80aaaa0e4e961a176e9ce746</a><br>
[1]: <a href="https://python-jenkins.readthedocs.io/en/latest/api.html#jenkins.Jenkins.get_queue_info" class="external">https://python-jenkins.readthedocs.io/en/latest/api.html#jenkins.Jenkins.get_queue_info</a><br>
[2]: <a href="https://gist.github.com/seandst/8e9b62f7b46bb5baa88a8bf5fbb11215" class="external">https://gist.github.com/seandst/8e9b62f7b46bb5baa88a8bf5fbb11215</a></p> Pulp - Task #1941 (CLOSED - CURRENTRELEASE): Strict/nitpicky sphinx settings break our rpm buildshttps://pulp.plan.io/issues/19412016-05-23T22:40:42Zsemyerssean.myers@redhat.com
<p>This is a post-mortem report of the task of diagnosing and fixing broken builds.</p>
<hr>
<p>In <a class="issue tracker-2 status-11 priority-6 priority-default closed" title="Task: Consolidate platform and plugin docs into a static site. (CLOSED - CURRENTRELEASE)" href="https://pulp.plan.io/issues/950">#950</a>, we turned on strict docs builds, but this ended up breaking our builds.</p>
<p>The problem was that there's no internet access inside the mock buildroot, so when sphinx went to download the intersphinx inventory files it would fail. Normally this triggers a warning, but enabling strict mode promotes all build warnings to errors. It's worth pointing out that the intersphinx downloads have always been failing during RPM build, the only thing new was our strictness.</p>
<p>Strict building is good; at the moment work is ongoing in <a class="issue tracker-2 status-11 priority-6 priority-default closed" title="Task: Consolidate platform and plugin docs into a static site. (CLOSED - CURRENTRELEASE)" href="https://pulp.plan.io/issues/950">#950</a> to modify our docs build process to hopefully (among many other goals) allow us to once again do strict builds with sphinx without breaking the build.</p>