Actions
Issue #4152
closedRegression Pulp 2.17.1: recursive copy of RPMs does not copy partially resolvable dependencies
Start date:
Due date:
Estimated time:
Severity:
2. Medium
Version:
2.17.1
Platform Release:
2.18.1
OS:
Triaged:
Yes
Groomed:
No
Sprint Candidate:
No
Tags:
Pulp 2
Sprint:
Sprint 46
Quarter:
Description
Problem¶
In contrast to e.g. Pulp 2.15.3, recursive copy in 2.17 seems to ignore dependencies that are not fully resolvable.
Packages often haven dependencies to OS packages (like "bash"). This means that "recursive" only works if the repository actually contains these system dependencies. In our use case, this is not the case (we build application repositories from a "union" of multiple repos using recursive copy).
Reproducer¶
pulp-admin rpm repo create --repo-id pulp_2_17_stable --feed https://repos.fedorapeople.org/repos/pulp/pulp/stable/2.17/7/x86_64/
pulp-admin rpm repo sync run --repo-id pulp_2_17_stable
pulp-admin rpm repo create --repo-id test
pulp-admin rpm repo copy rpm --from-repo-id pulp_2_17_stable --to-repo-id test --recursive --str-eq=name=pulp-server
On Pulp 2.15.3, this yields:
Copied:
pulp-selinux-2.17.1-1.el7-noarch
pulp-server-2.17.1-1.el7-noarch
python-bson-3.2-2.el7-x86_64
python-gofer-2.12.1-1.el7-noarch
python-isodate-0.5.0-4.pulp.el7-noarch
python-mongoengine-0.10.5-1.el7-noarch
python-nectar-1.5.6-1.el7-noarch
python-pulp-common-2.17.1-1.el7-noarch
python-pulp-repoauth-2.17.1-1.el7-noarch
python-pymongo-3.2-2.el7-x86_64
python-pymongo-gridfs-3.2-2.el7-x86_64
On Pulp 2.17:
Copied:
pulp-server-2.17.1-1.el7-noarch
Additionally, it logs:
pulp_rpm.plugins.importers.yum.pulp_solv:WARNING: [f0572afa] Encountered problems solving: nothing provides /bin/bash needed by pulp-server-0:2.17.1-1.el7.noarch
Related issues
Actions
Fake missing dependencies with dummy solvables
This patch allows automatically retrying the dependency solving during recursive copy if missing dependencies were detected.
Opt-in for the conservative recursive copy
This allows one to switch between a conservative and a relaxed (compatible) recursive copy of units (the default). To use the conservative recursive copy, add the
"conservative_recursive_copy": true
tag into the"override_config"
dictionary of the REST API request body.Fixes: #4152 https://pulp.plan.io/issues/4152