Bug 2105107 - Data issue for users on RHEL7 syncing EL8+ EPEL or Fedora Modular repositories
Summary: Data issue for users on RHEL7 syncing EL8+ EPEL or Fedora Modular repositories
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Satellite
Classification: Red Hat
Component: Pulp
Version: Unspecified
Hardware: Unspecified
OS: Unspecified
unspecified
high
Target Milestone: 6.12.0
Assignee: satellite6-bugs
QA Contact: Vladimír Sedmík
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2022-07-07 22:21 UTC by Daniel Alley
Modified: 2022-11-16 14:06 UTC (History)
7 users (show)

Fixed In Version: pulp-rpm-3.18.3-1
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2022-11-16 13:34:16 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github pulp pulp_rpm issues 2643 0 None closed Data repair for users with older versions of libmodulemd who synced Fedora or EPEL repos 2022-11-16 14:06:51 UTC
Red Hat Issue Tracker SAT-13100 0 None None None 2022-09-23 15:57:25 UTC
Red Hat Product Errata RHSA-2022:8506 0 None None None 2022-11-16 13:34:30 UTC

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.


Note You need to log in before you can comment on or make changes to this bug.