Project

General

Profile

Bug #30755

Pulp 2 composite content view version missing modular rpm compared to Pulp 3 after incremental update

Added by Ian Ballou over 1 year ago. Updated over 1 year ago.

Status:
Rejected
Priority:
Normal
Assignee:
-
Category:
Content Views
Target version:
Difficulty:
Triaged:
Yes
Bugzilla link:
Pull request:
Fixed in Releases:
Found in Releases:
Red Hat JIRA:

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.

History

#1 Updated by Ian Ballou over 1 year ago

In case the BATS test change, here's the repo setup more specifically (skipping the Puppet content):

Component CV 1:
-> Repos:
-> 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/
-> Filters:
-> Errata: Exclude WALRUS-2013:0002
-> Module streams: Include walrus 5.21 module stream
-> Packages: Exclude *
-> Envs for latest version: Library

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.

#2 Updated by Chris Roberts over 1 year ago

  • Triaged changed from No to Yes
  • Target version set to Katello 3.17.0
  • Category set to Content Views

#3 Updated by Chris Roberts over 1 year ago

  • Target version changed from Katello 3.17.0 to Katello 3.18.0

#4 Updated by Ian Ballou over 1 year 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.

#5 Updated by Ian Ballou over 1 year 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.

#6 Updated by Ian Ballou over 1 year ago

  • Target version changed from Katello 3.18.0 to Katello Recycle Bin
  • Status changed from New to Rejected

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.

Also available in: Atom PDF