Red Hat Bugzilla – Bug 980611
generated updateinfo.xml does not include package epoch
Last modified: 2014-08-09 02:56:13 EDT
Description of problem:
Pulp seems to generate the updateinfo.xml without specifying the epoch for packages:
<package arch="noarch" name="dracut-network" release="53.el6_1.1" src="dracut-004-53.el6_1.1.src.rpm" version="004">
Looking in the updateinfo.xml that pulp generates none of the package entires have an epoch field associated with them.
According to this bug:
this means in pulp's point of view these are invalid and errata cannot be remotely applied properly.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Sync a RHEL repo with errata
2. Publish the repo
3. Examine the updateinfo.xml published by pulp
packages should have epoch (at least the packages that actually do have an epoch)
No epoch is specified even for packages that do have an epoch (i think)
Note that the implications of this are that errata installs would fail on systems subscribed to a pulp node as per, since this updateinfo is 'invalid' in the words of bz958932.
I spent quite a lot of time working on this bug today, and I wanted to write down a few notes as I think I'm going to have to put it down for a while.
1) I believe the cause of this bug is our use of the Yum Python library for generating the updateinfo.xml file. In particular, we use the method yum.update_md.UpdateNotice.xml() to generate this particular XML, and that function omits the epoch from the XML. I am currently working with the Yum team to see if we can get them to accept a patch to include the epoch there. If we can get that, I think everything will be fine, but I am not sure whether or not it will move quickly. Due to that, a child Pulp Node will import errata that omit the epochs, and due to another bug (#1004986) Pulp tries to use "None" as the epoch.
2) I filed #1004986 to address the issue of the missing epoch being translated into None. I believe that will resolve a lot of the symptoms you are experiencing in this bug, but it will not truly resolve the issue, as the updateinfo.xml file will continue to have the epoch data missing. However, The errata will now be translated into a package by Name, Version, Release and Arch, and Yum should select the newest epoch automatically, so I believe the user experience will still be the desired experience.
3) We are about to rewrite our YumDistributor. This may involve reconsidering our use of Yum for this purpose, or possibly getting our fix accepted by upstream. This process will take longer than our 2.3 release cycle, and so I think we will need to push this bug back.
I believe that we can largely relieve the problem you are experiencing by fixing #1004986. Hopefully that will work for MDP2, and then we can fix the underlying issue during our distributor rewrite.
This has been fixed as part of the new yum distributor
[root@ibm-x3550m3-08 ~]# rpm -qa pulp-server
From rhel6-5 repo
<package arch="x86_64" epoch="1" name="NetworkManager" release="5.el6_0.1" src="NetworkManager-0.8.1-5.el6_0.1.src.rpm" version="0.8.1">
This has been fixed in Pulp 2.4.0-1.