Bug 593553 - hdr.dsFromHeader() fails with "SystemError" for gpg-pubkeys
hdr.dsFromHeader() fails with "SystemError" for gpg-pubkeys
Status: CLOSED ERRATA
Product: Fedora
Classification: Fedora
Component: rpm (Show other bugs)
13
All Linux
low Severity medium
: ---
: ---
Assigned To: Panu Matilainen
Fedora Extras Quality Assurance
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2010-05-19 02:15 EDT by Ville Skyttä
Modified: 2010-08-10 08:27 EDT (History)
3 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 593621 (view as bug list)
Environment:
Last Closed: 2010-08-10 08:27:00 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Ville Skyttä 2010-05-19 02:15:29 EDT
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...)
Comment 1 Panu Matilainen 2010-05-19 02:31:36 EDT
Sure it's an rpm-python bug, I'll look into it.
Comment 2 Panu Matilainen 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 Ville Skyttä 2010-05-19 10:53:03 EDT
(In reply to comment #2)
> 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?

Right.  Ditto on F-12 with rpm-python-4.7.2-1.fc12.x86_64.
Comment 4 Panu Matilainen 2010-05-21 09:29:35 EDT
Ack. Fixed in rawhide now.
Comment 5 Fedora Update System 2010-06-11 07:49:19 EDT
rpm-4.8.1-1.fc13 has been submitted as an update for Fedora 13.
http://admin.fedoraproject.org/updates/rpm-4.8.1-1.fc13
Comment 6 Fedora Update System 2010-07-07 13:42:37 EDT
rpm-4.8.1-2.fc13 has been pushed to the Fedora 13 stable repository.  If problems still persist, please make note of it in this bug report.

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