Test - sync does not report non-fatal errors properly
Ticket moved to GitHub: "pulp/pulp_file/620":https://github.com/pulp/pulp_file/issues/620
If you sync a file repository where one of the files is missing, it seems that the repository syncs as much as it can (as expected), but its reported as a fatal error, with a state of 'failed'.
Steps to reproduce:
1) create a file repository where one of the files is missing
2) create a file remote and repository and sync them
Actual task status (apologies its been yaml-fied):
- _href: "/pulp/api/v3/tasks/b6f9b619-c174-4e43-b546-0bbefdfb11e7/" _created: '2019-08-15T15:21:37.058+00:00' state: failed name: pulp_file.app.tasks.synchronizing.synchronize started_at: '2019-08-15T15:21:37.177+00:00' finished_at: '2019-08-15T15:21:37.382+00:00' non_fatal_errors: "" error: code: '' description: 404, message='Not Found' traceback: |2 File "/usr/local/lib/pulp/lib64/python3.6/site-packages/rq/worker.py", line 822, in perform_job rv = job.perform() File "/usr/local/lib/pulp/lib64/python3.6/site-packages/rq/job.py", line 605, in perform self._result = self._execute() File "/usr/local/lib/pulp/lib64/python3.6/site-packages/rq/job.py", line 611, in _execute return self.func(*self.args, **self.kwargs) File "/usr/local/lib/pulp/src/pulp-file/pulp_file/app/tasks/synchronizing.py", line 45, in synchronize dv.create() File "/usr/local/lib/pulp/src/pulpcore-plugin/pulpcore/plugin/stages/declarative_version.py", line 169, in create loop.run_until_complete(pipeline) File "/usr/lib64/python3.6/asyncio/base_events.py", line 484, in run_until_complete return future.result() File "/usr/local/lib/pulp/src/pulpcore-plugin/pulpcore/plugin/stages/api.py", line 209, in create_pipeline await asyncio.gather(*futures) File "/usr/local/lib/pulp/src/pulpcore-plugin/pulpcore/plugin/stages/api.py", line 43, in __call__ await self.run() File "/usr/local/lib/pulp/src/pulpcore-plugin/pulpcore/plugin/stages/artifact_stages.py", line 132, in run pb.done += task.result() # download_count File "/usr/local/lib/pulp/src/pulpcore-plugin/pulpcore/plugin/stages/artifact_stages.py", line 155, in _handle_content_unit await asyncio.gather(*downloaders_for_content) File "/usr/local/lib/pulp/src/pulpcore-plugin/pulpcore/plugin/stages/models.py", line 78, in download download_result = await downloader.run(extra_data=self.extra_data) File "/usr/local/lib/pulp/src/pulpcore-plugin/pulpcore/plugin/download/base.py", line 212, in run return await self._run(extra_data=extra_data) File "/usr/local/lib/pulp/lib64/python3.6/site-packages/backoff/_async.py", line 131, in retry ret = await target(*args, **kwargs) File "/usr/local/lib/pulp/src/pulpcore-plugin/pulpcore/plugin/download/http.py", line 183, in _run response.raise_for_status() File "/usr/local/lib/pulp/lib64/python3.6/site-packages/aiohttp/client_reqrep.py", line 942, in raise_for_status headers=self.headers) worker: "/pulp/api/v3/workers/df7e0085-b0dd-4073-b74d-9ab78ad27a03/" spawned_tasks:  progress_reports: - message: Downloading Metadata state: completed total: 1 done: 1 - message: Parsing Metadata Lines state: completed total: 2 done: 2 - message: Downloading Artifacts state: failed done: 0 - message: Associating Content state: canceled done: 0 created_resources:  reserved_resources_record:  create_version: true poll_attempts: total: 1 failed: 1
I'd expect this error to be in the 'non-fatal' errors attribute, and the state to not be 'failed'