Description of problem:
Attempting to install a package that is corrupt (has bad or incomplete headers)
on every available mirror results in a silent install failure that gives the
impression that the package has been installed.
Version-Release number of selected component (if applicable):
1.0.2 & 1.0.3 (reproduced with the head of the 1.0.x branch as of 9/19/2006)
Attempt to install a package that has incomplete headers on every mirror listed
in the yum config files.
Steps to Reproduce:
1. Start yumex in X. In the 'Install' tab, search for the nagios.i386 package
and add it to the install queue.
2. Click over to the Queue tab and process the queue.
The install appears to run to completion, but no actual files are installed.
The package remains visible in the 'Install' tab, and does not appear in the
'Remove' tab. Yumex reports that the package was installed in the Ouput view.
Running from a console shows the following error message appears on the console:
error: %pre(nagios-2.5-2.fc4.i386) scriptlet failed, exit status 255
error: install: %pre scriptlet failed (2), skipping nagios-2.5-2.fc4
No error message of any kind is visible if yumex is not started from a console.
yumex should not report that the package was succesfully installed.
Attempting to install the same package with just yum shows that yum is trying to
download the package from multiple mirrors, and finding that in each case the
headers for the package are incomplete. After exhausting the mirror list, it
terminates with the following error:
Error: failure: nagios-2.5-2.fc4.i386.rpm from extras: [Errno 256] No more
mirrors to try.
The problem is that the rpm process dont return errors if a scriptlet fails, i
only print warning messages to stderr. So Yumex dont know that an error has
occoured, so it think that the install was ok.
The warning messages written to the console cant not be redirected, even with
the with the python sys.stderr redirected to the yumex console, dont print the
messages on the console, they are still printet to the console.