[Pulp-list] incorrect errata processing produces incomplete package file lists

Andreas Piesk a.piesk at gmx.net
Wed Sep 26 17:54:45 UTC 2012


Hello list,

I'm evaluating pulp 1.1.11 for mirroring RHEL channel in our data centers and noticed an issue with
the errata processing which is serious in my book because if the incomplete files lists.

let's take errata RHBA-2012:1305 for example. Red Hat published for "RHEL 6 Workstation i386" the
following affected packages (see https://rhn.redhat.com/errata/RHBA-2012-1305.html):

openswan-2.6.32-19.el6_3.src.rpm
openswan-2.6.32-19.el6_3.i686.rpm
openswan-debuginfo-2.6.32-19.el6_3.i686.rpm
openswan-doc-2.6.32-19.el6_3.i686.rpm

this is an errata spanning multiple repos, namely 'optional' and 'os':

updateinfo.xml "rhel-i386-workstation-optional-6":

<id>RHBA-2012:1305</id>
<title>openswan bug fix update</title>
<issued date="2012-09-24 00:00:00"/><updated date="2012-09-24 00:00:00"/>
<pkglist><collection short="rhel-i386-workstation-optional-6">
<filename>openswan-doc-2.6.32-19.el6_3.i686.rpm</filename>
</collection>
</pkglist>


updateinfo.xml "rhel-i386-workstation-os-6":

<id>RHBA-2012:1305</id>
<title>openswan bug fix update</title>
<issued date="2012-09-24 00:00:00"/>
<updated date="2012-09-24 00:00:00"/>
<pkglist><collection short="rhel-i386-workstation-6">
<filename>openswan-2.6.32-19.el6_3.i686.rpm</filename>
</package></collection></pkglist>

but pulp-admin shows only one filename, the one from repo 'os':

$ pulp-admin errata info --id RHBA-2012:1305

Id                    	RHBA-2012:1305
Title                 	openswan bug fix update

Type                  	bugfix
Issued                	2012-09-24 00:00:00
Updated               	2012-09-24 00:00:00
Version               	1
Release               	
Status                	final
Packages Effected     	openswan-2.6.32-19.el6_3.i686.rpm
Reboot Suggested      	False
References            	
			href : https://rhn.redhat.com/errata/RHBA-2012-1305.html
			type : self
			id : None
			title : RHBA-2012:1305


a json dump of errata in 'class Info(ErrataAction)' shows:

    "id": "RHBA-2012:1305",
    "issued": "2012-09-24 00:00:00",
    "pkglist": [
        {
            "name": "Red Hat Enterprise Linux Workstation (v. 6 for 32-bit x86)",
            "packages": [
                {
                    "arch": "i686",
                    "epoch": "0",
                    "filename": "openswan-2.6.32-19.el6_3.i686.rpm",
                    "name": "openswan",
                    "release": "19.el6_3",
                    "src": "openswan-2.6.32-19.el6_3.src.rpm",
                    "sum": [
                        "sha256",
                        "02deefd2ab19a440da74992fa03ae1de7e9a2dd017fc42257981027ade0a7206"
                    ],
                    "version": "2.6.32"
                }
            ],
            "short": "rhel-i386-workstation-6"
        }
    ],
    "repoids": [
        "rhel6Workstation-i386-os",
        "rhel6Workstation-i386-optional"
    ],

as far as i understand the code, the first errata with this id, in this case from
"rhel6Workstation-i386-os" is stored and assigned to "rhel6Workstation-i386-os". the errata with the
same id from "rhel6Workstation-i386-optional" has the same timestamp and is ignored
(sync_updateinfo_data()) _but_ the id is saved and used in _add_erratum() to assign this errata to
"rhel6Workstation-i386-optional".
so basically the errata from one repo with a filelist x is used for all repos which have the same
errata but with a dfferent filelist.

as i'm not sure how pulp is designed to process erratas spanning different repos i'm reluctant to
make changes to fix it.

i hope someone can shed some light on the issue. How should the erata processing work?


thanks for reading.

regards,
-ap

-- 




More information about the Pulp-list mailing list