Bug 1821781

Summary: UpdateCollectionModule attributes are silently modified by too-early deallocation (python bindings)
Product: Red Hat Enterprise Linux 8 Reporter: Daniel Alley <dalley>
Component: createrepo_cAssignee: amatej
Status: CLOSED ERRATA QA Contact: Jan Blazek <jblazek>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: CentOS StreamCC: amatej, jrohel, mblaha, pkratoch, ttereshc
Target Milestone: rcKeywords: Triaged
Target Release: 8.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: createrepo_c-0.15.10-1.el8 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-11-04 03:09:16 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
reproducer none

Description Daniel Alley 2020-04-07 15:29:16 UTC
Created attachment 1676967 [details]
reproducer

Description of problem:

When "module = cr.UpdateCollectionModule()" is placed within a limited scope such as a function, with the "module" being passed out of the function, attributes set on the "module" object from within the function are silently nulled when it is returned.

The problem occurs silently, so we end up publishing incorrect updateinfo.xml which is a big problem.

Example: https://pastebin.com/92q5a2mz

Placing a debugger can influence this to work for some reason, as does removing the inner scope such as in these examples:

https://pastebin.com/nnAyshtr
https://pastebin.com/PG40jqZV

The likely cause is that UpdateCollectionModule attribute data is being deallocated when the Python object goes out of scope despite a reference to the data still being alive.


Version-Release number of selected component (if applicable): 0.15.9


How reproducible: 100%

Comment 1 amatej 2020-04-08 05:55:25 UTC
PR to fix:
https://github.com/rpm-software-management/createrepo_c/pull/216

It also contains a test.

Comment 2 Tanya Tereshchenko 2020-04-08 08:54:58 UTC
Tested, it works. Thank you for the fix!

Comment 14 errata-xmlrpc 2020-11-04 03:09:16 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (createrepo_c bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHEA-2020:4700