Actions
Issue #4424
closedPulp does not provide a descriptive error message for RPM repos with invalid metadata
Start date:
Due date:
Estimated time:
Severity:
2. Medium
Version:
Platform Release:
OS:
Triaged:
Yes
Groomed:
No
Sprint Candidate:
No
Tags:
Sprint:
Quarter:
Description
Pulp 3 does not handle RPM repos with invalid metadata.
When syncing a repository that's missing its ``filelists.xml`` file. Like: missing file list
Traceback:
("Task report /pulp/api/v3/tasks/213/ contains a error: {'code': None, "
'\'description\': "404, message=\'Not Found\'", \'traceback\': \' File '
'"/usr/local/lib/pulp/lib64/python3.7/site-packages/rq/worker.py", line 799, '
'in perform_job\\n rv = job.perform()\\n File '
'"/usr/local/lib/pulp/lib64/python3.7/site-packages/rq/job.py", line 600, in '
'perform\\n self._result = self._execute()\\n File '
'"/usr/local/lib/pulp/lib64/python3.7/site-packages/rq/job.py", line 606, in '
'_execute\\n return self.func(*self.args, **self.kwargs)\\n File '
'"/usr/local/lib/pulp/lib64/python3.7/site-packages/pulp_rpm/app/tasks/synchronizing.py", '
'line 79, in synchronize\\n loop.run_until_complete(pipeline)\\n File '
'"/usr/lib64/python3.7/asyncio/base_events.py", line 584, in '
'run_until_complete\\n return future.result()\\n File '
'"/usr/local/lib/pulp/lib64/python3.7/site-packages/pulpcore/plugin/stages/api.py", '
'line 209, in create_pipeline\\n await asyncio.gather(*futures)\\n File '
'"/usr/local/lib/pulp/lib64/python3.7/site-packages/pulpcore/plugin/stages/api.py", '
'line 43, in __call__\\n await self.run()\\n File '
'"/usr/local/lib/pulp/lib64/python3.7/site-packages/pulp_rpm/app/tasks/synchronizing.py", '
'line 234, in run\\n results = downloader.result()\\n File '
'"/usr/local/lib/pulp/lib64/python3.7/site-packages/pulpcore/plugin/download/base.py", '
'line 212, in run\\n return await self._run(extra_data=extra_data)\\n '
'File "/usr/local/lib/pulp/lib64/python3.7/site-packages/backoff/_async.py", '
'line 131, in retry\\n ret = await target(*args, **kwargs)\\n File '
'"/usr/local/lib/pulp/lib64/python3.7/site-packages/pulpcore/plugin/download/http.py", '
'line 183, in _run\\n response.raise_for_status()\\n File '
'"/usr/local/lib/pulp/lib64/python3.7/site-packages/aiohttp/client_reqrep.py", '
"line 942, in raise_for_status\\n headers=self.headers)\\n'}\n"
"Full task report: {'_href': '/pulp/api/v3/tasks/213/', '_created': "
"'2018-12-21T00:58:21.054706Z', 'job_id': "
"'5d967c5e-4903-43e9-a171-9fbad97bae9e', 'state': 'failed', 'name': "
"'pulp_rpm.app.tasks.synchronizing.synchronize', 'started_at': "
"'2018-12-21T00:58:21.130936Z', 'finished_at': '2018-12-21T00:58:21.589230Z', "
'\'non_fatal_errors\': [], \'error\': {\'code\': None, \'description\': "404, '
'message=\'Not Found\'", \'traceback\': \' File '
'"/usr/local/lib/pulp/lib64/python3.7/site-packages/rq/worker.py", line 799, '
'in perform_job\\n rv = job.perform()\\n File '
'"/usr/local/lib/pulp/lib64/python3.7/site-packages/rq/job.py", line 600, in '
'perform\\n self._result = self._execute()\\n File '
'"/usr/local/lib/pulp/lib64/python3.7/site-packages/rq/job.py", line 606, in '
'_execute\\n return self.func(*self.args, **self.kwargs)\\n File '
'"/usr/local/lib/pulp/lib64/python3.7/site-packages/pulp_rpm/app/tasks/synchronizing.py", '
'line 79, in synchronize\\n loop.run_until_complete(pipeline)\\n File '
'"/usr/lib64/python3.7/asyncio/base_events.py", line 584, in '
'run_until_complete\\n return future.result()\\n File '
'"/usr/local/lib/pulp/lib64/python3.7/site-packages/pulpcore/plugin/stages/api.py", '
'line 209, in create_pipeline\\n await asyncio.gather(*futures)\\n File '
'"/usr/local/lib/pulp/lib64/python3.7/site-packages/pulpcore/plugin/stages/api.py", '
'line 43, in __call__\\n await self.run()\\n File '
'"/usr/local/lib/pulp/lib64/python3.7/site-packages/pulp_rpm/app/tasks/synchronizing.py", '
'line 234, in run\\n results = downloader.result()\\n File '
'"/usr/local/lib/pulp/lib64/python3.7/site-packages/pulpcore/plugin/download/base.py", '
'line 212, in run\\n return await self._run(extra_data=extra_data)\\n '
'File "/usr/local/lib/pulp/lib64/python3.7/site-packages/backoff/_async.py", '
'line 131, in retry\\n ret = await target(*args, **kwargs)\\n File '
'"/usr/local/lib/pulp/lib64/python3.7/site-packages/pulpcore/plugin/download/http.py", '
'line 183, in _run\\n response.raise_for_status()\\n File '
'"/usr/local/lib/pulp/lib64/python3.7/site-packages/aiohttp/client_reqrep.py", '
"line 942, in raise_for_status\\n headers=self.headers)\\n'}, 'worker': "
"'/pulp/api/v3/workers/1/', 'parent': None, 'spawned_tasks': [], "
"'progress_reports': [{'message': 'Downloading and Parsing Metadata', "
"'state': 'failed', 'total': 2, 'done': 2, 'suffix': '', 'task': "
"'/pulp/api/v3/tasks/213/'}, {'message': 'Downloading Artifacts', 'state': "
"'canceled', 'total': None, 'done': 0, 'suffix': '', 'task': "
"'/pulp/api/v3/tasks/213/'}, {'message': 'Associating Content', 'state': "
"'canceled', 'total': None, 'done': 0, 'suffix': '', 'task': "
"'/pulp/api/v3/tasks/213/'}], 'created_resources': []}",
{'_created': '2018-12-21T00:58:21.054706Z',
'_href': '/pulp/api/v3/tasks/213/',
'created_resources': [],
'error': {'code': None,
'description': "404, message='Not Found'",
'traceback': ' File '
'"/usr/local/lib/pulp/lib64/python3.7/site-packages/rq/worker.py", '
'line 799, in perform_job\n'
' rv = job.perform()\n'
' File '
'"/usr/local/lib/pulp/lib64/python3.7/site-packages/rq/job.py", '
'line 600, in perform\n'
' self._result = self._execute()\n'
' File '
'"/usr/local/lib/pulp/lib64/python3.7/site-packages/rq/job.py", '
'line 606, in _execute\n'
' return self.func(*self.args, **self.kwargs)\n'
' File '
'"/usr/local/lib/pulp/lib64/python3.7/site-packages/pulp_rpm/app/tasks/synchronizing.py", '
'line 79, in synchronize\n'
' loop.run_until_complete(pipeline)\n'
' File '
'"/usr/lib64/python3.7/asyncio/base_events.py", line '
'584, in run_until_complete\n'
' return future.result()\n'
' File '
'"/usr/local/lib/pulp/lib64/python3.7/site-packages/pulpcore/plugin/stages/api.py", '
'line 209, in create_pipeline\n'
' await asyncio.gather(*futures)\n'
' File '
'"/usr/local/lib/pulp/lib64/python3.7/site-packages/pulpcore/plugin/stages/api.py", '
'line 43, in __call__\n'
' await self.run()\n'
' File '
'"/usr/local/lib/pulp/lib64/python3.7/site-packages/pulp_rpm/app/tasks/synchronizing.py", '
'line 234, in run\n'
' results = downloader.result()\n'
' File '
'"/usr/local/lib/pulp/lib64/python3.7/site-packages/pulpcore/plugin/download/base.py", '
'line 212, in run\n'
' return await self._run(extra_data=extra_data)\n'
' File '
'"/usr/local/lib/pulp/lib64/python3.7/site-packages/backoff/_async.py", '
'line 131, in retry\n'
' ret = await target(*args, **kwargs)\n'
' File '
'"/usr/local/lib/pulp/lib64/python3.7/site-packages/pulpcore/plugin/download/http.py", '
'line 183, in _run\n'
' response.raise_for_status()\n'
' File '
'"/usr/local/lib/pulp/lib64/python3.7/site-packages/aiohttp/client_reqrep.py", '
'line 942, in raise_for_status\n'
' headers=self.headers)\n'},
'finished_at': '2018-12-21T00:58:21.589230Z',
'job_id': '5d967c5e-4903-43e9-a171-9fbad97bae9e',
'name': 'pulp_rpm.app.tasks.synchronizing.synchronize',
'non_fatal_errors': [],
'parent': None,
'progress_reports': [{'done': 2,
'message': 'Downloading and Parsing Metadata',
'state': 'failed',
'suffix': '',
'task': '/pulp/api/v3/tasks/213/',
'total': 2},
{'done': 0,
'message': 'Downloading Artifacts',
'state': 'canceled',
'suffix': '',
'task': '/pulp/api/v3/tasks/213/',
'total': None},
{'done': 0,
'message': 'Associating Content',
'state': 'canceled',
'suffix': '',
'task': '/pulp/api/v3/tasks/213/',
'total': None}],
'spawned_tasks': [],
'started_at': '2018-12-21T00:58:21.130936Z',
'state': 'failed',
'worker': '/pulp/api/v3/workers/1/'})
Same happen using the following test repos:
missing other
missing primary
A descriptive error should be returned.
Pulp 2 does fail before any content being synced. Related issue: https://pulp.plan.io/issues/1287
Actions
Descriptive error for RPM with invalid metadata
https://pulp.plan.io/issues/4424 closes #4424