Skip Menu |
 

This queue is for tickets about the RPM2 CPAN distribution.

Report information
The Basics
Id: 15908
Status: new
Priority: 0/
Queue: RPM2

People
Owner: Nobody in particular
Requestors: kuchyt25 [...] potsdam.edu
Cc:
AdminCc:

Bug Information
Severity: Important
Broken in: (no value)
Fixed in: (no value)



Subject: Multiple packages in transaction causes failure
Download (untitled) / with headers
text/plain 1.1k
Distribution name/version: RPM2-0.66 Perl version: v5.8.6 for i386-linux-thread-multi Operating system vendor and version: Linux 2.6.11-1.1369_FC4 #1 i686 i686 i386 GNU/Linux It appears that adding multiple packages to a transaction set causes at least the fnpyKey of the previous package to be clobbered. So when it's used to open a file in the _null_callback, it appears that it's a random position in memory and as such contains random data. This causes the open to fail and for the transaction to fail with a "bad file descriptor" error. This can be examined by building a transaction set iterator that prints the fnpyKey after the rpmtsAddInstallElement() call in _add_install() as follows. CODE: rc = rpmtsAddInstallElement(t, h (fnpyKey)fn, upgrade, NULL); rpmtsi pi; rpmte pe; pi = rpmtsiInit(t); while ((pe = rpmtsiNext(pi, 0)) != NULL) { char * key1 = (char *) rpmteKey(pe); printf("_add_install: transaction filename - %s\n", key1); } ... Adding multiple packages should result in the newest added package printing it's filename and the prvious packages printing nothing or random data.


This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

Please report any issues with rt.cpan.org to rt-cpan-admin@bestpractical.com.