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> RPM Support - Issue #9387 (CLOSED - CURRENTRELEASE): Depsolving computes repoclosure once per-rpm...https://pulp.plan.io/issues/93872021-09-13T15:42:24Zggainey
<p>Unlike Pulp2, Pulp3 on-copy depsolving is computing repoclosure on the destination repo once <strong>per RPM copied</strong> . It only takes 1s to compute - but when copying 10K rpms, that adds up, in both CPU and memory.</p> Debian Support - Issue #9299 (CLOSED - CURRENTRELEASE): Resolve Django 3 async issueshttps://pulp.plan.io/issues/92992021-08-26T12:31:31Zquba42
<p>Pulpcore 3.15 will be based on <code>Django~=3.2.6</code> which does not play nice with the current async implementation.</p> 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 - Issue #9164 (CLOSED - CURRENTRELEASE): Dropping Python 3.6 and 3.7 from the 2.14...https://pulp.plan.io/issues/91642021-07-28T11:43:11Zquba42
<p>It looks like this was merged prematurely on my part.</p>
<p>Users have reported the following:</p>
<pre><code>I tried to update pulp_deb plugins using ansible but getting error as per below.
TASK [pulp.pulp_installer.pulp_common : Install prerequisites] ******************************************************************************************************************************************************************************
fatal: [pulptest008.karmalab.net]: FAILED! => {"changed": false, "msg": "No package matching 'rh-python38-python' found available, installed or updated", "rc": 126, "results": ["python-setuptools-0.9.8-7.el7.noarch providing python-setuptools is already installed", "No package matching 'rh-python38-python' found available, installed or updated"]}
</code></pre>
<p>Fresh installs are also suffering weird dependency effects where Python 3 is not being installed at all.</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> Pulp - Issue #9146 (CLOSED - CURRENTRELEASE): sync of file:// repos tries to move files from /var...https://pulp.plan.io/issues/91462021-07-26T18:47:01Zjsherril@redhat.comjsherril@redhat.com
<p>When syncing file:// repos it appears that pulp is trying to move files from that directory. In our case we copy files that are world readable, but not writable by the pulp user and see a permission error:</p>
<pre><code>Jul 26 18:27:11 devel2 pulpcore-worker-1: pulp [994770242e2842ecade44f158e7de8d0]: pulpcore.tasking.pulpcore_worker:INFO: Task 4c40418c-8a76-4a83-a6ee-4d2b5326c9d4 failed ([Errno 13] Pe
rmission denied: '/var/lib/pulp/sync_imports/test_repos/zoo/kangaroo-0.2-1.noarch.rpm')
Jul 26 18:27:11 devel2 pulpcore-worker-1: pulp [994770242e2842ecade44f158e7de8d0]: pulpcore.tasking.pulpcore_worker:INFO: File "/usr/lib/python3.6/site-packages/pulpcore/tasking/pulpc
ore_worker.py", line 272, in _perform_task
Jul 26 18:27:11 devel2 pulpcore-worker-1: result = func(*args, **kwargs)
Jul 26 18:27:11 devel2 pulpcore-worker-1: File "/usr/lib/python3.6/site-packages/pulp_rpm/app/tasks/synchronizing.py", line 427, in synchronize
Jul 26 18:27:11 devel2 pulpcore-worker-1: version = dv.create()
Jul 26 18:27:11 devel2 pulpcore-worker-1: File "/usr/lib/python3.6/site-packages/pulpcore/plugin/stages/declarative_version.py", line 151, in create
Jul 26 18:27:11 devel2 pulpcore-worker-1: loop.run_until_complete(pipeline)
Jul 26 18:27:11 devel2 pulpcore-worker-1: File "/usr/lib64/python3.6/asyncio/base_events.py", line 484, in run_until_complete
Jul 26 18:27:11 devel2 pulpcore-worker-1: return future.result()
Jul 26 18:27:11 devel2 pulpcore-worker-1: File "/usr/lib/python3.6/site-packages/pulpcore/plugin/stages/api.py", line 225, in create_pipeline
Jul 26 18:27:11 devel2 pulpcore-worker-1: await asyncio.gather(*futures)
Jul 26 18:27:11 devel2 pulpcore-worker-1: File "/usr/lib/python3.6/site-packages/pulpcore/plugin/stages/api.py", line 43, in __call__
Jul 26 18:27:11 devel2 pulpcore-worker-1: await self.run()
Jul 26 18:27:11 devel2 pulpcore-worker-1: File "/usr/lib/python3.6/site-packages/pulpcore/plugin/stages/artifact_stages.py", line 248, in run
Jul 26 18:27:11 devel2 pulpcore-worker-1: d_artifact.artifact for d_artifact in da_to_save
Jul 26 18:27:11 devel2 pulpcore-worker-1: File "/usr/lib/python3.6/site-packages/pulpcore/app/models/content.py", line 82, in bulk_get_or_create
Jul 26 18:27:11 devel2 pulpcore-worker-1: return super().bulk_create(objs, batch_size=batch_size)
Jul 26 18:27:11 devel2 pulpcore-worker-1: File "/usr/lib/python3.6/site-packages/django/db/models/manager.py", line 82, in manager_method
Jul 26 18:27:11 devel2 pulpcore-worker-1: return getattr(self.get_queryset(), name)(*args, **kwargs)
Jul 26 18:27:11 devel2 pulpcore-worker-1: File "/usr/lib/python3.6/site-packages/django/db/models/query.py", line 468, in bulk_create
Jul 26 18:27:11 devel2 pulpcore-worker-1: self._batched_insert(objs_with_pk, fields, batch_size, ignore_conflicts=ignore_conflicts)
Jul 26 18:27:11 devel2 pulpcore-worker-1: File "/usr/lib/python3.6/site-packages/django/db/models/query.py", line 1204, in _batched_insert
Jul 26 18:27:11 devel2 pulpcore-worker-1: ignore_conflicts=ignore_conflicts,
Jul 26 18:27:11 devel2 pulpcore-worker-1: File "/usr/lib/python3.6/site-packages/django/db/models/query.py", line 1186, in _insert
Jul 26 18:27:11 devel2 pulpcore-worker-1: return query.get_compiler(using=using).execute_sql(return_id)
Jul 26 18:27:11 devel2 pulpcore-worker-1: File "/usr/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1376, in execute_sql
Jul 26 18:27:11 devel2 pulpcore-worker-1: for sql, params in self.as_sql():
Jul 26 18:27:11 devel2 pulpcore-worker-1: File "/usr/lib/python3.6/site-packages/django_readonly_field/compiler.py", line 31, in as_sql
Jul 26 18:27:11 devel2 pulpcore-worker-1: return super(ReadonlySQLCompilerMixin, self).as_sql()
Jul 26 18:27:11 devel2 pulpcore-worker-1: File "/usr/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1320, in as_sql
Jul 26 18:27:11 devel2 pulpcore-worker-1: for obj in self.query.objs
Jul 26 18:27:11 devel2 pulpcore-worker-1: File "/usr/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1320, in <listcomp>
Jul 26 18:27:11 devel2 pulpcore-worker-1: for obj in self.query.objs
Jul 26 18:27:11 devel2 pulpcore-worker-1: File "/usr/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1319, in <listcomp>
Jul 26 18:27:11 devel2 pulpcore-worker-1: [self.prepare_value(field, self.pre_save_val(field, obj)) for field in fields]
Jul 26 18:27:11 devel2 pulpcore-worker-1: File "/usr/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1270, in pre_save_val
Jul 26 18:27:11 devel2 pulpcore-worker-1: return field.pre_save(obj, add=True)
Jul 26 18:27:11 devel2 pulpcore-worker-1: File "/usr/lib/python3.6/site-packages/pulpcore/app/models/fields.py", line 68, in pre_save
Jul 26 18:27:11 devel2 pulpcore-worker-1: return super().pre_save(model_instance, add)
Jul 26 18:27:11 devel2 pulpcore-worker-1: File "/usr/lib/python3.6/site-packages/django/db/models/fields/files.py", line 289, in pre_save
Jul 26 18:27:11 devel2 pulpcore-worker-1: file.save(file.name, file.file, save=False)
Jul 26 18:27:11 devel2 pulpcore-worker-1: File "/usr/lib/python3.6/site-packages/django/db/models/fields/files.py", line 88, in save
Jul 26 18:27:11 devel2 pulpcore-worker-1: self.name = self.storage.save(name, content, max_length=self.field.max_length)
Jul 26 18:27:11 devel2 pulpcore-worker-1: File "/usr/lib/python3.6/site-packages/django/core/files/storage.py", line 54, in save
Jul 26 18:27:11 devel2 pulpcore-worker-1: return self._save(name, content)
Jul 26 18:27:11 devel2 pulpcore-worker-1: File "/usr/lib/python3.6/site-packages/pulpcore/app/models/storage.py", line 68, in _save
Jul 26 18:27:11 devel2 pulpcore-worker-1: file_move_safe(content.temporary_file_path(), full_path)
Jul 26 18:27:11 devel2 pulpcore-worker-1: File "/usr/lib/python3.6/site-packages/django/core/files/move.py", line 80, in file_move_safe
Jul 26 18:27:11 devel2 pulpcore-worker-1: os.remove(old_file_name)
</code></pre>
<p>These repos are in /var/lib/pulp/sync_imports/ (and settings.py is configured properly).</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> 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:49ZdaviddavisPulp - Issue #2586 (CLOSED - NOTABUG): Pulp workers/beat/resource_manager go missinghttps://pulp.plan.io/issues/25862017-02-13T20:52:22Zehelms@redhat.comehelms@redhat.com
<p>Running on Pulp 2.10.3, I see the following error messages running this setup:</p>
<p>clone <a href="https://github.com/Katello/forklift" class="external">https://github.com/Katello/forklift</a><br>
vagrant up centos7-katello-nightly</p>
<p>If you do not see the error messages initially:</p>
<pre><code>vagrant ssh centos7-katello-nightly
cd /
/vagrant/forklift/bats/bootstrap_vagrant.sh
cd /vagrant/forklift/bats
bats fb-install-katello.bats fb-content-katello.bats
</code></pre>
<pre><code>Feb 13 20:45:22 centos7 pulp: pulp.server.async.scheduler:ERROR: There are 0 pulp_resource_manager processes running. Pulp will not operate correctly without at least one pulp_resource_mananger process running.
Feb 13 20:46:22 centos7 pulp: pulp.server.async.scheduler:ERROR: There are 0 pulp_resource_manager processes running. Pulp will not operate correctly without at least one pulp_resource_mananger process running.
Feb 13 20:47:22 centos7 pulp: pulp.server.async.scheduler:ERROR: There are 0 pulp_resource_manager processes running. Pulp will not operate correctly without at least one pulp_resource_mananger process running.
Feb 13 20:48:22 centos7 pulp: pulp.server.async.scheduler:ERROR: There are 0 pulp_resource_manager processes running. Pulp will not operate correctly without at least one pulp_resource_mananger process running.
Feb 13 20:49:22 centos7 pulp: pulp.server.async.scheduler:ERROR: There are 0 pulp_resource_manager processes running. Pulp will not operate correctly without at least one pulp_resource_mananger process running.
Feb 13 20:50:22 centos7 pulp: pulp.server.async.scheduler:ERROR: There are 0 pulp_resource_manager processes running. Pulp will not operate correctly without at least one pulp_resource_mananger process running.
</code></pre> Pulp - Issue #2379 (CLOSED - WORKSFORME): repomd.xml points to wrong updateinfo.xml.gz filehttps://pulp.plan.io/issues/23792016-11-01T13:59:56Zbmbouterbmbouter@redhat.com
<p>As Issue <a class="issue tracker-1 status-11 priority-6 priority-default closed" title="Issue: Additional updateinfo.xml after second publish (CLOSED - CURRENTRELEASE)" href="https://pulp.plan.io/issues/2096">#2096</a> identifies, each incremental publish leaves a copy of updateinfo.xml.gz in the repodata folder. The repomd.xml file sometimes links to the wrong updateinof.xml.gz file. If that incremental publish brings in additional errata then those errata will not be published.</p> Packaging - 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> Docker Support - Issue #1953 (CLOSED - NOTABUG): Migration failing on upgrade from 2.8.3->2.8.4https://pulp.plan.io/issues/19532016-05-27T17:42:30Zpthomas@redhat.com
<p>Database migration is failing for upgrade from 2.8.3 to 2.8.4</p>
<pre><code>
[root@yttrium ~]# rpm -qa |grep pulp
python-kombu-3.0.33-5.pulp.el7.noarch
python-pulp-rpm-common-2.8.4-0.1.beta.el7.noarch
pulp-server-2.8.4-0.1.beta.el7.noarch
pulp-admin-client-2.8.4-0.1.beta.el7.noarch
python-pulp-docker-common-2.0.2-0.1.beta.el7.noarch
python-pulp-bindings-2.8.4-0.1.beta.el7.noarch
pulp-puppet-plugins-2.8.4-0.1.beta.el7.noarch
pulp-puppet-admin-extensions-2.8.4-0.1.beta.el7.noarch
python-pulp-client-lib-2.8.4-0.1.beta.el7.noarch
python-pulp-oid_validation-2.8.4-0.1.beta.el7.noarch
pulp-rpm-plugins-2.8.4-0.1.beta.el7.noarch
pulp-rpm-admin-extensions-2.8.4-0.1.beta.el7.noarch
pulp-docker-plugins-2.0.2-0.1.beta.el7.noarch
pulp-docker-admin-extensions-2.0.2-0.1.beta.el7.noarch
python-pulp-common-2.8.4-0.1.beta.el7.noarch
python-pulp-repoauth-2.8.4-0.1.beta.el7.noarch
pulp-selinux-2.8.4-0.1.beta.el7.noarch
python-isodate-0.5.0-4.pulp.el7.noarch
python-pulp-puppet-common-2.8.4-0.1.beta.el7.noarch
[root@yttrium ~]#
1. Install pulp 2.8.3
2. Populate with content
3. Make sure include rpm, iso, puppet, docker contents
4. Yum update to 2.8.4 beta
5. Run pulp-manage-db
[root@yttrium ~]# sudo -u apache pulp-manage-db
Attempting to connect to localhost:27017
Attempting to connect to localhost:27017
Write concern for Mongo connection: {}
Loading content types.
Loading type descriptors []
Parsing type descriptors
Validating type descriptor syntactic integrity
Validating type descriptor semantic integrity
Loading unit model: puppet_module = pulp_puppet.plugins.db.models:Module
Loading unit model: erratum = pulp_rpm.plugins.db.models:Errata
Loading unit model: distribution = pulp_rpm.plugins.db.models:Distribution
Loading unit model: package_group = pulp_rpm.plugins.db.models:PackageGroup
Loading unit model: package_category = pulp_rpm.plugins.db.models:PackageCategory
Loading unit model: iso = pulp_rpm.plugins.db.models:ISO
Loading unit model: package_environment = pulp_rpm.plugins.db.models:PackageEnvironment
Loading unit model: drpm = pulp_rpm.plugins.db.models:DRPM
Loading unit model: srpm = pulp_rpm.plugins.db.models:SRPM
Loading unit model: rpm = pulp_rpm.plugins.db.models:RPM
Loading unit model: yum_repo_metadata_file = pulp_rpm.plugins.db.models:YumMetadataFile
Loading unit model: docker_blob = pulp_docker.plugins.models:Blob
Loading unit model: docker_manifest = pulp_docker.plugins.models:Manifest
Loading unit model: docker_image = pulp_docker.plugins.models:Image
Loading unit model: docker_tag = pulp_docker.plugins.models:Tag
Updating the database with types []
Found the following type definitions that were not present in the update collection [puppet_module, docker_tag, docker_manifest, docker_blob, erratum, yum_repo_metadata_file, package_group, package_category, iso, package_environment, drpm, srpm, rpm, distribution, docker_image]
Updating the database with types [puppet_module, docker_tag, erratum, docker_blob, docker_manifest, yum_repo_metadata_file, package_group, package_category, iso, package_environment, drpm, distribution, rpm, srpm, docker_image]
Content types loaded.
Ensuring the admin role and user are in place.
Admin role and user are in place.
Beginning database migrations.
Migration package pulp.server.db.migrations is up to date at version 23
The database for migration package pulp_docker.plugins.migrations is at version 2, which is larger than the latest version available, 1.
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/pulp/server/db/manage.py", line 193, in main
return _auto_manage_db(options)
File "/usr/lib/python2.7/site-packages/pulp/server/db/manage.py", line 256, in _auto_manage_db
migrate_database(options)
File "/usr/lib/python2.7/site-packages/pulp/server/db/manage.py", line 73, in migrate_database
raise DataError(msg)
DataError: The database for migration package pulp_docker.plugins.migrations is at version 2, which is larger than the latest version available, 1.
[root@yttrium ~]#
From the log
May 27 13:29:09 yttrium.idmqe.lab.eng.bos.redhat.com pulp[23300]: pulp.server.db.manage:INFO: Migration package pulp.server.db.migrations is up to date at version 23
May 27 13:29:09 yttrium.idmqe.lab.eng.bos.redhat.com pulp[23300]: pulp.server.db.manage:CRITICAL: The database for migration package pulp_docker.plugins.migrations is at version 2, which is larger than the latest version available, 1.
May 27 13:29:09 yttrium.idmqe.lab.eng.bos.redhat.com pulp[23300]: pulp.server.db.manage:CRITICAL: (23300-12224) Traceback (most recent call last):
May 27 13:29:09 yttrium.idmqe.lab.eng.bos.redhat.com pulp[23300]: pulp.server.db.manage:CRITICAL: (23300-12224) File "/usr/lib/python2.7/site-packages/pulp/server/db/manage.py", line 193, in main
May 27 13:29:09 yttrium.idmqe.lab.eng.bos.redhat.com pulp[23300]: pulp.server.db.manage:CRITICAL: (23300-12224) return _auto_manage_db(options)
May 27 13:29:09 yttrium.idmqe.lab.eng.bos.redhat.com pulp[23300]: pulp.server.db.manage:CRITICAL: (23300-12224) File "/usr/lib/python2.7/site-packages/pulp/server/db/manage.py", line 256, in _auto_manage_db
May 27 13:29:09 yttrium.idmqe.lab.eng.bos.redhat.com pulp[23300]: pulp.server.db.manage:CRITICAL: (23300-12224) migrate_database(options)
May 27 13:29:09 yttrium.idmqe.lab.eng.bos.redhat.com pulp[23300]: pulp.server.db.manage:CRITICAL: (23300-12224) File "/usr/lib/python2.7/site-packages/pulp/server/db/manage.py", line 73, in migrate_database
May 27 13:29:09 yttrium.idmqe.lab.eng.bos.redhat.com pulp[23300]: pulp.server.db.manage:CRITICAL: (23300-12224) raise DataError(msg)
May 27 13:29:09 yttrium.idmqe.lab.eng.bos.redhat.com pulp[23300]: pulp.server.db.manage:CRITICAL: (23300-12224) DataError: The database for migration package pulp_docker.plugins.migrations is at version 2, which is larger than the latest version available, 1.
May 27 13:29:09 yttrium.idmqe.lab.eng.bos.redhat.com pulp[23300]: pulp.server.db.manage:CRITICAL: (23300-12224)
</code></pre> 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>