Bug 463447 - If yum gets an exception in it's rpm callbacks ... rpm can go insane killing the machine
Summary: If yum gets an exception in it's rpm callbacks ... rpm can go insane killing ...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 5
Classification: Red Hat
Component: yum
Version: 5.2
Hardware: All
OS: Linux
high
medium
Target Milestone: rc
: ---
Assignee: James Antill
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2008-09-23 15:00 UTC by James Antill
Modified: 2009-09-03 14:03 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2009-01-20 21:43:52 UTC
Target Upstream Version:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2009:0176 0 normal SHIPPED_LIVE yum bug fix update 2009-01-20 16:05:43 UTC

Description James Antill 2008-09-23 15:00:33 UTC
Description of problem:

 The problem is outlined in this recent thread on fedora-devel:

https://www.redhat.com/archives/fedora-devel-list/2008-September/msg02063.html

...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.

Comment 1 James Antill 2008-09-29 19:54:00 UTC
So I spoke with Panu and he seems to think we really should get this in for 5.3, so flags?

Comment 3 James Antill 2008-09-30 14:16:19 UTC
 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).

Comment 9 errata-xmlrpc 2009-01-20 21:43:52 UTC
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.

http://rhn.redhat.com/errata/RHBA-2009-0176.html


Note You need to log in before you can comment on or make changes to this bug.