Sync tasks fail with the latest pulpcore version
'Pulp task failed (No declared artifact with relative path "8274d1cf-5109-438b-ac44-2c561c880c0c/objects/ad/a85ed21a9393257c364f1de573d6d3f1b32f9d2ae08956837ba834036d5019.dirmeta" for content "<OstreeObject: pk=3c868b45-5d8d-459b-80fa-5a947dfeba1f>")'
This might be related to sync_async changes. Updating ProgressReport to async does not help. There is probably a more serious issue underneath.
Updated by lmjachky almost 2 years ago
The problem is caused by the fact that the same content units need to be published at different relative paths. But, the relative path of an existing content unit fetched from the database does not have the same relative path as a content unit created in the sync pipeline and the following if-condition will never be met: https://github.com/pulp/pulpcore/blob/cb564bad6eab050dc4952d929cd41f2dc8189b29/pulpcore/plugin/stages/artifact_stages.py#L329
This issue was not disclosed during the development due to the orphan cleanup workflow which was run after every function test. Disabling redis triggered the erroneous behaviour as well.
A possible patch for the problem is to create a uniqueness constraint on relative_path in all OSTree content units which has an Artifact object associated with them (https://hackmd.io/@pulp/SJ9davNYL#pulp_deb--pulp_file-way).