Bug 2105107

Summary: Data issue for users on RHEL7 syncing EL8+ EPEL or Fedora Modular repositories
Product: Red Hat Satellite Reporter: Daniel Alley <dalley>
Component: PulpAssignee: satellite6-bugs <satellite6-bugs>
Status: CLOSED ERRATA QA Contact: Vladimír Sedmík <vsedmik>
Severity: high Docs Contact:
Priority: unspecified    
Version: UnspecifiedCC: dkliban, ggainey, iballou, lpramuk, lvrtelov, pcreech, rchan
Target Milestone: 6.12.0Keywords: Triaged
Target Release: Unused   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: pulp-rpm-3.18.3-1 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-11-16 13:34:16 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Daniel Alley 2022-07-07 22:21:31 UTC
Description of problem:

Fedora and EPEL have begun shipping module metadata with static_context: True. Unfortunately when older versions of libmodulemd (pre-2.12.0) encounter this metadata they silently ignore the modules.

As a result of a mixup, Satellite 6.10 and 6.11 have been shipping libmodulemd 2.9.3 on EL7, so some customers may experience this issue.

The result is that if Pulp was used to sync these repositories on systems without the newer version available then the modules were not processed by the sync machinery, causing modular RPMs to be saved as non-modular. 

The user-facing impact is that users who sync these repositories may experience problems when trying to use them via DNF.  Modules such as Zabbix or Perl may be missing.

On EL8 this may not be an issue as the system ships newer versions of libmodulemd.

After the libmodulemd package is updated by a separate BZ this will not occur in the future, but data already synced must be fixed.

Version-Release number of selected component (if applicable): 6.10, 6.11


How reproducible: 100%


Steps to Reproduce:

Install Satellite 6.10 or 6.11 on EL7, make sure that you have a pre-2.12 version of the libmodulemd2 package installed (on EL8 this is called just libmodulemd).

Sync and publish the repo. Look in the modules.yaml metadata for the "zabbix" module, which should not be present, although it is in the original metadata.

Also look at the zabbix RPMs, which should be synced but have is_modular=False despite being modular packages.

Comment 1 Ian Ballou 2022-07-07 23:04:04 UTC
Related BZ for updating libmodulemd: https://bugzilla.redhat.com/show_bug.cgi?id=2070168

Comment 5 Daniel Alley 2022-09-27 00:41:58 UTC
The fix is implemented as a sync-time hook which checks whether the existing packages are marked correctly and re-saves them if they are not.  So gradually over time this should resolve itself as the repositories are re-synced.

Comment 6 Lukas Pramuk 2022-10-10 17:04:39 UTC
FailedQA.

@Satellite 6.12.0 Snap14
python39-pulp-rpm-3.18.3-1.el8pc.noarch


The fix caused regression in upgrades -> BZ#2133468
There is now failing rpm.0044_noartifact_modules migration

Comment 7 Daniel Alley 2022-10-10 22:30:38 UTC
Updating the name - it was minor at the time (only one module impacted) but now there are several, so it's a lot less minor.  It's also a challenging backport so I don't recommend dropping it if it can be helped.

Comment 8 Lukas Pramuk 2022-10-11 14:36:04 UTC
This is non upgrade separate bug which can be verified apart of BZ#2133468

Comment 9 Vladimír Sedmík 2022-10-11 15:31:18 UTC
Verified in 6.12.0 snap 14 with python39-pulp-rpm-3.18.3-1. The goal of this BZ was to ensure that the content previously synced with wrong version of libmodulemd can be fixed via repository Complete sync once the correct version of libmodulemd is present.

Steps:
1. Using libmodulemd-2.9.4-2 synced EPEL8 repo to a blank Satellite, checked the zabbix-6.0.6 package is missing in modules.yaml and is_modular is wrongly set to false in its metedata.
2. Updated the libmodulemd back to the latest version (libmodulemd-2.13.0-1) and triggered the Complete sync of the EPEL8 repo (Optimized sync just skips).
3. Checked that is_modular was corrected to true for the zabbix-6.0.6 package and it was added to the modules.yaml.

    "location_href": "Packages/z/zabbix-6.0.6-2.module_el8+15227+8ea73968.x86_64.rpm",
    "rpm_buildhost": "buildvm-x86-30.iad2.fedoraproject.org",
    "rpm_group": "Unspecified",
    "rpm_license": "GPLv2+",
    "rpm_packager": "Fedora Project",
    "rpm_sourcerpm": "zabbix-6.0.6-2.module_el8+15227+8ea73968.src.rpm",
    "rpm_vendor": "Fedora Project",
    "rpm_header_start": 4504,
    "rpm_header_end": 12782,
    "is_modular": true,

Comment 13 errata-xmlrpc 2022-11-16 13:34:16 UTC
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 (Important: Satellite 6.12 Release), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2022:8506

Comment 14 pulp-infra@redhat.com 2022-11-16 14:06:52 UTC
The Pulp upstream bug status is at closed. Updating the external tracker on this bug.