Project

Profile

Help

Issue #2559

closed

Empty pkglist for the erratum may be generated which may cause yum not to find applicable packages

Added by ttereshc about 7 years ago. Updated about 5 years ago.

Status:
CLOSED - CURRENTRELEASE
Priority:
High
Assignee:
Sprint/Milestone:
-
Start date:
Due date:
Estimated time:
Severity:
3. High
Version:
Platform Release:
2.12.2
OS:
Triaged:
Yes
Groomed:
No
Sprint Candidate:
No
Tags:
Pulp 2
Sprint:
Sprint 15
Quarter:

Description

If none of the packages listed in the original erratum are in the repo, such erratum will be published with empty pkglist.
That does not make any sense - no packages to update anyway.

The case when the same erratum is in multiple repos is more complicated and is worse for the yum to handle.
If yum finds the erratum with the same id and collection name for pkglist in N repos, it chooses the first pkglist and that's it.
If the first one will turn out to be an empty one, yum will show no packages for update in the scope of the particular erratum.

Our users can easily end up with one or more empty pkglists for the erratum because of the way Pulp stores and then generates updateinfo.xml.

Actions #2

Updated by ttereshc about 7 years ago

  • Description updated (diff)
Actions #3

Updated by bizhang about 7 years ago

  • Priority changed from Normal to High
  • Sprint/Milestone set to 32
  • Severity changed from 2. Medium to 3. High
  • Triaged changed from No to Yes
Actions #5

Updated by mhrivnak about 7 years ago

  • Sprint/Milestone changed from 32 to 33
Actions #6

Updated by daviddavis about 7 years ago

  • Status changed from NEW to ASSIGNED
  • Assignee set to daviddavis
Actions #7

Updated by daviddavis about 7 years ago

  • Status changed from ASSIGNED to NEW
  • Assignee deleted (daviddavis)
Actions #8

Updated by daviddavis about 7 years ago

  • Status changed from NEW to ASSIGNED
  • Assignee set to ttereshc
Actions #9

Updated by ttereshc about 7 years ago

  • Status changed from ASSIGNED to POST

Added by ttereshc about 7 years ago

Revision ef8ddba2 | View on GitHub

Filter out empty errata pkglists during publish

Stop publishing errata with empty pkglist. If an erratum has multiple pkglists, publish only non-empty ones.

closes #2559 https://pulp.plan.io/issues/2559

Actions #10

Updated by ttereshc about 7 years ago

  • Status changed from POST to MODIFIED
Actions #11

Updated by Ichimonji10 about 7 years ago

Is the following statement correct?

If an {S,D,}RPM is absent from a repository, then errata referencing that RPM shall also be absent.

I'm curious, because we have at least three test cases that just broke in exactly this fashion. One of the broken tests is ErratumPkgListCountTestCase. The test does the following:

1. Create an RPM repository with a feed and distributor, and sync the repository.
2. Remove the "gorilla" package from the repository.
3. Publish the repository.
4. Examine the published repository's updateinfo.xml file.

The source repository has four errata, and one of the errata references the "gorilla" package. In the repository published by Pulp, only three errata are present, with the one referencing the "gorilla" package missing.

Actions #12

Updated by ttereshc about 7 years ago

Is the following statement correct?

If an {S,D,}RPM is absent from a repository, then errata referencing that RPM shall also be absent.

Partially.
If this RPM was the only RPM in the erratum pkglist, then yes, such erratum should be absent from `updateinfo.xml`.
If there are more RPMs in the erratum pkglist, then such erratum should be published, just without those RPMs absent from repo.

Actions #13

Updated by Ichimonji10 about 7 years ago

OK. I think I understand what you're saying, but I want to make sure that I get it 100%, because this seems to be a significant change from how Pulp has worked in the past. So bear with me.

Let's say I create an RPM repository, add an erratum to it (but no RPMs), and publish it. Will the errata be available via the published repository? My understanding is "no."

Here's a second scenario. Let's say I create an RPM repository, and add:

  • an rpm "foo-package",
  • an errata "foo-errata" referencing "foo-package"
  • an rpm "bar-package", and
  • an errata "bar-errata" referencing "bar-package".

When I publish this repository, both errata will be available, correct? And if I remove "bar-package" from the repository and publish the repository again, then both "bar-package" and "bar-errata" will be omitted, correct?

Actions #14

Updated by ttereshc about 7 years ago

Your understanding is correct in both cases.

Actions #15

Updated by semyers about 7 years ago

  • Platform Release set to 2.12.2
Actions #18

Updated by semyers about 7 years ago

  • Status changed from MODIFIED to 5
Actions #19

Updated by semyers about 7 years ago

We had a good team chat about the "Verification Required" flag on Monday, and decided that the release of 2.12.2 should not be blocked on the verification of this issue.

Actions #20

Updated by bizhang about 7 years ago

  • Status changed from 5 to CLOSED - CURRENTRELEASE
Actions #22

Updated by bmbouter about 6 years ago

  • Sprint set to Sprint 15
Actions #23

Updated by bmbouter about 6 years ago

  • Sprint/Milestone deleted (33)
Actions #24

Updated by bmbouter about 5 years ago

  • Tags Pulp 2 added

Also available in: Atom PDF