Description of problem:
Using anaconda to update a system that requires no RPM updates shows the following error dialog to the user:
Error running transaction
An error occurred while installing packages.
Please examine /root/install.log on your
installed system for detailed information.
Version-Release number of selected component (if applicable):
Red Hat Enterprise Linux 5.6 Server
Steps to Reproduce:
1. Install Red Hat Enterprise Linux 5.6 Server
2. Boot from Red Hat Enterprise Linux 5.6 Server DVD, and choose to upgrade the installed system.
Error message is shown to the user saying "An error occurred while installing packages."
No error message is expected.
Created attachment 495081 [details]
anaconda.log from original upgrade attempt
Created attachment 495082 [details]
Proposed patch to skip empty transaction sets
While we could certainly do this in anaconda, I think I'd prefer a fix down in rpm itself. I don't understand why running an empty transaction should be an error condition. If it's empty, running it is trivially finished.
Agreed, there's no reason to report an error code on empty transaction, that's just "historical behavior" since 2004. I've fixed rpmtsRun() to return zero on empty transaction upstream, and preliminary ACK for changing it in RHEL 5 + 6 too.
As this is really a rare corner case and a cosmetic one at that, it's hardly worth fixing in RHEL-5 at this point. This will be fixed in future RHEL versions anyway.