Bug #30755
closedPulp 2 composite content view version missing modular rpm compared to Pulp 3 after incremental update
Description
The BATS tests have a new check for content inside of a composite content view. There is a slight difference between Pulp 2 and Pulp 3 -- the whale-0.2-1.noarch.rpm package is missing from the Pulp 2 composite content view. I suspect this is a bug.
To reproduce, run the BATS tests on a Katello server that is using Pulp 2 for all content types.
Get the CVV id with:
cvv_id=$(hammer --csv --no-headers content-view version list --organization="${ORGANIZATION}" \ | grep "Composite 1.1" | cut -d, -f1)
Run hammer package list:
hammer package list --content-view-version-id=$cvv_id --order='name DESC' --fields='filename'
There should be two instances of whale-0.2-1.noarch.rpm, but there isn't.
Also, double check that it isn't Pulp 3 that is incorrect.
Updated by Ian Ballou over 4 years ago
In case the BATS test change, here's the repo setup more specifically (skipping the Puppet content):
Component CV 1:> Repos:> Filters:
-> https://jlsherrill.fedorapeople.org/fake-repos/needed-errata/
-> https://partha.fedorapeople.org/test-repos/separated/modules-rpms/
-> https://partha.fedorapeople.org/test-repos/separated/rpm-deps/
> Errata: Exclude WALRUS-2013:0002> Envs for latest version: Library
-> Module streams: Include walrus 5.21 module stream
-> Packages: Exclude *
Component CV 2:> Repos: https://jlsherrill.fedorapeople.org/fake-repos/needed-errata/> Envs for latest version: Library, Test
Composite CV:> Components: Component 1 latest and Test CV latest> Envs for latest version: Library, Test
Incremental update Component CV 1 with composite propagation:
hammer content-view version incremental-update --organization="${ORGANIZATION}" \ --content-view-version-id=$cvv_id --errata-ids=WALRUS-2013:0002 --propagate-all-composites=true \ --lifecycle-environments="Library"
Now check the composite cv's latest CVV for the whale package in question.
Updated by Chris Roberts over 4 years ago
- Category set to Content Views
- Target version set to Katello 3.17.0
- Triaged changed from No to Yes
Updated by Chris Roberts about 4 years ago
- Target version changed from Katello 3.17.0 to Katello 3.18.0
Updated by Ian Ballou about 4 years ago
I believe I understand why this occurs. Here are my notes from a trial I did (note zoo == needed-errata):
Repos in Component 1: modules-rpms, rpm-deps, zoo with filters from above
Repos in Component 2: zoo
After incremental update, looking at Component 1:
Pulp 2 grabs the following from modules-rpms:
walrus-0.71-1.noarch
walrus-5.21-1.noarch
whale-0.2-1.noarch
And the following from rpm-deps:
shark-0.1-1.noarch
stork-0.12-2.noarch
Pulp 3 grabs the following from modules-rpms:
walrus-0.71-1.noarch
walrus-5.21-1.noarch
And the following from rpm-deps:
shark-0.1-1.noarch
stork-0.12-2.noarch
And the following from zoo:
whale-0.2-1.noarch
After incremental update, looking at Composite:
Pulp 2 grabs the following from modules-rpms:
walrus-0.71-1.noarch
walrus-5.21-1.noarch
whale-0.2-1.noarch
And the following from rpm-deps:
shark-0.1-1.noarch
stork-0.12-2.noarch
And the following from zoo:
< Everything from zoo >
Pulp 3 grabs the following from modules-rpms:
walrus-0.71-1.noarch
walrus-5.21-1.noarch
And the following from rpm-deps:
shark-0.1-1.noarch
stork-0.12-2.noarch
And the following from zoo:
< Everything from zoo >
Pulp 3 grabbed whale-0.2-1.noarch from zoo rather than modules-rpms when incrementally updating Component 1 due to dep solving being on. When the composite was incrementally updated, zoo with 1 rpm merged with full zoo, and the duplicate whale was cancelled out. Hence, one package was missing on the Pulp 3 side of things.
Updated by Ian Ballou about 4 years ago
TL;DR
I think this bug is caused by the randomness of dependency solving during incremental updating. This randomness should be verified.
I've also confirmed that this issue is not confined to incremental updating. If publishing the components with dep solving, the same issue is possible.
Updated by Ian Ballou about 4 years ago
- Status changed from New to Rejected
- Target version changed from Katello 3.18.0 to Katello Recycle Bin
Closing out this bug. The worst harm that this will cause is a possible inconsistency with the number of RPMs in a composite content view version. There should never be missing RPMs, just potentially extra duplicates. A fix would either require Pulp 3 to implement a way to consistently cross-repo dep solve, or for us to re-work how composite content views work with duplicate packages.