Created attachment 566552 [details] Script to reproduce conflict issue Description of problem: When we synchronize two repositories, with roughly the same content, but signed with different gpg keys (e.g. one is official CDN, and second is a Brew repo), there might occur conflicts: two packages with the same checksum prefix (Pulp uses first 3 characters of checksum to distinguish them.) It seemed improbable to hit the conflict, but we just did in Katello. It results links to point to different package, than repodata says. And this then causes another issue, like one described in steps to reproduce Version-Release number of selected component (if applicable): How reproducible: Steps to Reproduce: (script attached): pulp-admin repo create --id rh-repo --name rh-repo --feed http://inecas.fedorapeople.org/fakerepos/rh-repo --relativepath=rh-repo pulp-admin repo sync --id rh-repo -F pulp-admin repo clone --id rh-repo --clone_id=rh-repo-clone -F pulp-admin repo create --id brew-repo --name brew-repo --feed http://inecas.fedorapeople.org/fakerepos/brew-repo --relativepath=brew-repo pulp-admin repo sync --id brew-repo -F pulp-admin repo sync --id rh-repo-clone -F Actual results: error: Error: `/var/lib/pulp//repos/rh-repo/PackageKit-gstreamer-plugin-0.5.8-19.el6.x86_64.rpm` and `/var/lib/pulp//packages/PackageKit-gstreamer-plugin/0.5.8/19.el6/x86_64/838/PackageKit-gstreamer-plugin-0.5.8-19.el6.x86_64.rpm` are the same file link pointing to package from another repo Expected results: Links pointing to packages with right checksum
commit 8d788f4849369b1f116edb368384ec4f8267bf1 The fix also includes a migration script that needs to be run taking pulp server offline. See wiki page for more info https://fedorahosted.org/pulp/wiki/PackagePathUpdate
build: 1.0.0-6
verified [root@pulp-v1-server ~]# rpm -q pulp pulp-1.0.0-6.el6.noarch [root@pulp-v1-server ~]# [root@pulp-v1-server ~]# pulp-admin repo create --id rh-repo --name rh-repo --feed http://inecas.fedorapeople.org/fakerepos/rh-repo --relativepath=rh-repo Successfully created repository [ rh-repo ] [root@pulp-v1-server ~]# pulp-admin repo sync --id rh-repo -F Sync for repository rh-repo started Sync: Finished 0/1 new items downloaded 1/1 existing items processed Item Details: RPMs: 1/1 [root@pulp-v1-server ~]# pulp-admin repo clone --id rh-repo --clone_id=rh-repo-clone -F Repository [rh-repo] is being cloned as [rh-repo-clone] Clone: Finished Item Details: RPMs: 1/1 [root@pulp-v1-server ~]# pulp-admin repo create --id brew-repo --name brew-repo --feed http://inecas.fedorapeople.org/fakerepos/brew-repo --relativepath=brew-repo Successfully created repository [ brew-repo ] [root@pulp-v1-server ~]# pulp-admin repo sync --id brew-repo -F Sync for repository brew-repo started Sync: Finished 1/1 new items downloaded 0/1 existing items processed Item Details: RPMs: 1/1 [root@pulp-v1-server ~]# pulp-admin repo sync --id rh-repo-clone -F Sync for repository rh-repo-clone started Sync: Finished 0/1 new items downloaded 1/1 existing items processed Item Details: RPMs: 1/1 [root@pulp-v1-server ~]# pulp-admin repo sync --id rh-repo-clone -F Sync for repository rh-repo-clone started Sync: Finished 0/1 new items downloaded 1/1 existing items processed Item Details: RPMs: 1/1 root@pulp-v1-server ~]# Also verified the package migrate script and all the different suggested tests as per the wiki page https://fedorahosted.org/pulp/wiki/PackagePathUpdate
Pulp v1.1 Release