Issue #9535
closedSync optimization can result in invalid publications in combination with sync_policy=mirror_complete
Description
Ticket moved to GitHub: "pulp/pulp_rpm/2316":https://github.com/pulp/pulp_rpm/issues/2316
If a primary repo changes and triggers a re-sync, but sub-repos do not change, those sub-repos will not be included in the publication created when metadata is mirrored. When a sync policy of mirror_complete is being used, sync optimization should only take place if none of the repositories (including sub-repos declared in the treeinfo metadata) have changed.
This is because the publication cannot put all of the files in their proper places without parsing the metadata. However, it might be possible to optimize this in the future to avoid actually sending content through the sync pipeline.
Other related issues to address simultaneously:
- The sync optimization heuristic only takes the primary repo into account, so if sub-repos change without the primary repo having changed, Pulp will not notice
- If a repo at a directory declared by the treeinfo metadata cannot be found, a warning is logged, rather than skipping it silently
Related issues
Fix sync optimization when sync_policy=mirror_complete
closes: #9535 https://pulp.plan.io/issues/9535