Bug 593621

Summary: hdr.dsFromHeader() fails with "SystemError" for gpg-pubkeys
Product: Red Hat Enterprise Linux 6 Reporter: Panu Matilainen <pmatilai>
Component: rpmAssignee: Panu Matilainen <pmatilai>
Status: CLOSED CURRENTRELEASE QA Contact: Karel Srot <ksrot>
Severity: medium Docs Contact:
Priority: low    
Version: 6.0CC: ffesti, jhutar, jnovy, pmatilai, ville.skytta
Target Milestone: rcKeywords: Regression
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: rpm-4.8.0-9.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 593553 Environment:
Last Closed: 2010-11-10 21:32:13 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 628883    

Description Panu Matilainen 2010-05-19 10:16:07 UTC
+++ This bug was initially created as a clone of Bug #593553 +++

rpm-python-4.8.0-14.fc13.x86_64 on current F-13:

import rpm
for hdr in rpm.TransactionSet().dbMatch("name", "gpg-pubkey"):
    print hdr.dsFromHeader()

Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
SystemError: NULL result without error in PyObject_Call

Slightly different message with rpm-python-4.4.2.3-18.el5 on CentOS 5:

Traceback (most recent call last):
  File "<stdin>", line 2, in ?
SystemError: error return without exception set

rpm-python bug?

This affects rpmlint (DocFilesCheck.py).  I wonder if I could just use hdr.dsOfHeader() instead of hdr.dsFromHeader() there, it doesn't seem to have the same problem (not to mention that even that doesn't have to be done for packages that don't have doc files...)

--- Additional comment from pmatilai on 2010-05-19 02:31:36 EDT ---

Sure it's an rpm-python bug, I'll look into it.

--- Additional comment from pmatilai on 2010-05-19 03:26:34 EDT ---

Fixed upstream now, pulling into Fedora shortly... Looking at rpm 4.4.x code, the actual rpmlint code works on Centos but breaks with the reproducer (its just the print blowing up), right?

hdr.dsOfHeader() and hds.dsFromHeader() are completly different things and can't be used interchangibly. dsOfHeader() returns basically
Provides: %{name} = %{version}-%{release}
whereas dsFromHeader() returns the actual requires/provides/obsoletes/conflicts dependencies.

Comment 3 Panu Matilainen 2010-06-01 09:29:14 UTC
Fixed in rpm-4.8.0-9.el6 now.

Comment 9 releng-rhel@redhat.com 2010-11-10 21:32:13 UTC
Red Hat Enterprise Linux 6.0 is now available and should resolve
the problem described in this bug report. This report is therefore being closed
with a resolution of CURRENTRELEASE. You may reopen this bug report if the
solution does not work for you.