repository metadata not getting published for some repos which have ".." in location_href (points outside of repo)
I created multiple repos and selected default setting but metadata does not get published. Packages directory is missing from published repo. 'manually republishing metadata fixes it but I am afraid it will become stale.
#8 Updated by email@example.com about 1 month ago
@firstname.lastname@example.org Which versions of pulpcore and pulp_rpm are you using?
rpm -qa |grep -i pulpcore
rpm -qa |grep -i pulp_rpm
#10 Updated by dalley about 1 month ago
Also reproduced with https://packages.rundeck.com/pagerduty/rundeck/rpm_any/rpm_any/x86_64
#11 Updated by dalley about 1 month ago
- Subject changed from repository metadata not getting published for some repos synced from a mirror list to repository metadata not getting published for some repos synced from behind Amazon CDN
https://packages.rundeck.com/pagerduty/rundeck/rpm_any/rpm_any/x86_64 is not a mirrorlist repo, so that is not the issue.
But both of these repos are hosted behind the Amazon Cloudfront CDN, which is doing some really crazy and annoying obfuscation (presumably for purposes of DDoS prevention). I don't have proof yet but I suspect that's part of the problem.
edit: I was wrong, that's not the reason. The reason is that these repos use location_href values that point backwards outside of the actual repo. Pulp cannot mirror these paths, so the only solution is to throw an error and tell the user to disable mirroring, so that the location_href values in the metadata can be rewritten inside the path namespace of the distribution.
#12 Updated by dalley about 1 month ago
The solution is to disable "mirror-on-sync". And the "bugfix" here should be to add an hard-error that fails for repositories like this one, and tells the user to disable mirroring.
The "mirror" option makes a complete copy of the metadata and retains the same package layout as the original repo. But because the original layout keeps all of the package outside of the repo itself, mirror can't possibly work. It would be putting the files outside of the distribution base_path and polluting / interfering with the global namespace, and we cannot allow that.
Please register to edit this issue