Red Hat Bugzilla – Bug 463447
If yum gets an exception in it's rpm callbacks ... rpm can go insane killing the machine
Last modified: 2009-09-03 10:03:51 EDT
Description of problem:
The problem is outlined in this recent thread on fedora-devel:
...but basically if an exception occurs in the yum RPMTransaction callback, then rpm can go insane and run the "delete old versions" part of the updates without having run the "install new versions". An exception can be generated on I/O if the ssh connection dies of the person running the yum update command.
So if you are updating glibc over ssh and the network goes away, rpm can remove the C library and thus. kill the machine.
Obviously this is a major rpm bug, and it might be better if we can fix this in rpm for 5.3 instead. However I've also done a couple of hacks that basically hide some/most errors from rpm, which might be enough.
So I spoke with Panu and he seems to think we really should get this in for 5.3, so flags?
Note that where Panu put that raise is not protected by the yum patch, because it's not possible for an IO exception to occur there.
I tried to simulate this by using:
(yum update -y | cat) &
...and then kill'ing the cat command at various points ... and while that did do some "interesting" things, including just halting the transaction immediately, it didn't do the "rpm erases the system" problem.
But that should be mostly ignored after the latest patch (yum/rpm should continue).
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.