Description of problem:
Creating a filter to exclude a package with a higher version that has multiple versions doesn't work properly on conservative dep-solving.
Version-Release number of selected component (if applicable):
6.7 snap 6
Steps to Reproduce:
1. Turn dependency solving to conservative.
2. Create and sync custom repo.
3. Create cv with depsolving on and add custom repo.
4. Create exclusion filter and exclude a package (walrus) with a higher version
5. Publish CV
6. Check rpm package list for that version
walrus 0.71 and 5.21 are present in rpm packages list.
walrus 0.71 is the only package present in rpm packages list.
Without depsolving, the filtering function works as expected.
I do see some interesting behavior that could either be communicated to the user better or changed.
The metadata from https://inecas.fedorapeople.org/fakerepos/zoo/repodata/be20ece13e6c21b132667ddcaa4d7ad0b32e470b9917aba51979e0707116280d-primary.xml.gz shows that chimpanzee requires walrus (see under <rpm:requires>)
<version epoch="0" ver="0.21" rel="1"/>
<checksum type="sha256" pkgid="YES">5aa8b0eb10a974a02639ffea7c10d7dab93f82c4d08c32b00b5677e638fd4da6</checksum>
<summary>A dummy package of chimpanzee</summary>
<description>A dummy package of chimpanzee</description>
<time file="1331832454" build="1331831363"/>
<size package="2497" installed="42" archive="300"/>
<rpm:header-range start="872" end="2341"/>
<rpm:entry name="chimpanzee" flags="EQ" epoch="0" ver="0.21" rel="1"/>
When "walrus-5.21" is filtered, "walrus-5.21" is pulled in, despite "walrus-0.71" existing in the content view. "walrus-0.71" should have been enough to fill the requirement.
However, when "walrus-0.71" is filtered, it stays filtered. So it appears that the latest version of the required package is pulled into the content view.
This goes against the "conservative" dependency solving approach, which says "Conservative will only add packages to solve the dependencies if the package needed doesn't exist."
I'll have to do some further investigation and talk with pulp to see why this is happening. It does seem some changes are needed, either in our documenting of the strategies or in the actual dependency solving itself.
I don't see a change in what katello is sending pulp in this area, so I passed my findings along to dalley to take a look if something changed in pulp. After his investigation, we can determine which component the bug is in.
I was able to reproduce this on Pulp RPM master branch. Will investigate further
Bisected down to commit 7fb0330b60a2b24a9905f0c243cb35df42dd9711
Correction to #7, commit 39e310ab3abc15d5d21b70dd910e79731f4c7a89 is where this starts biting us
The Pulp upstream bug status is at ASSIGNED. Updating the external tracker on this bug.
The Pulp upstream bug priority is at Normal. Updating the external tracker on this bug.
The Pulp upstream bug status is at POST. Updating the external tracker on this bug.
The Pulp upstream bug status is at MODIFIED. Updating the external tracker on this bug.
All upstream Pulp bugs are at MODIFIED+. Moving this bug to POST.
The Pulp upstream bug status is at ON_QA. Updating the external tracker on this bug.
The Pulp upstream bug status is at CLOSED - CURRENTRELEASE. Updating the external tracker on this bug.
Walrus package excluded from VC package list
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.