Bug 494897 - yum-complete-transaction not behaving correctly on an unfinished transaction
yum-complete-transaction not behaving correctly on an unfinished transaction
Status: CLOSED DUPLICATE of bug 495911
Product: Red Hat Enterprise Linux 5
Classification: Red Hat
Component: yum-utils (Show other bugs)
All Linux
medium Severity medium
: rc
: ---
Assigned To: James Antill
BaseOS QE Security Team
Depends On:
  Show dependency treegraph
Reported: 2009-04-08 11:26 EDT by Chris Marcantonio
Modified: 2014-01-21 01:12 EST (History)
1 user (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2009-11-30 17:04:29 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)
the output from yum-complete-transaction that tries to remove 685 packages (207.25 KB, text/plain)
2009-04-08 11:26 EDT, Chris Marcantonio
no flags Details
output from "echo 'n' | yum-complete-transaction -d 7" (541.27 KB, text/plain)
2009-04-08 11:57 EDT, Chris Marcantonio
no flags Details

  None (edit)
Description Chris Marcantonio 2009-04-08 11:26:53 EDT
Created attachment 338730 [details]
the output from yum-complete-transaction that tries to remove 685 packages

Description of problem:
When running yum-complete-transaction, yum attempts to delete basically my entire system: 685 rpms after all dependencies are resolved.

Version-Release number of selected component (if applicable):

# rpm -q yum

# yum --version
  Installed: yum-3.2.19-18.el5.noarch at 2009-02-18 19:50
  Built    : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla> at 2008-11-25 22:35
  Committed: James Antill <jantill@redhat.com> at 2008-11-25 22:00

  Installed: yum-metadata-parser-1.1.2-2.el5.x86_64 at 2008-05-22 15:06
  Built    : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla> at 2008-01-18 17:42
  Committed: James Antill <james.antill@redhat.com> at 2008-01-18 22:00

  Installed: rpm- at 2009-02-18 19:49
  Built    : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla> at 2008-12-03 06:40
  Committed: Panu Matilainen <pmatilai@redhat.com> at 2008-12-02 22:00

  Installed: yum-rhn-plugin-0.5.3-30.el5.noarch at 2009-02-18 19:58
  Built    : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla> at 2008-11-11 20:34
  Committed: Pradeep Kilambi <pkilambi@redhat.com> at 2008-11-11 22:00

How reproducible:
I believe I've actually got this one captured and reproduced on a system here at my desk right now.  I have been reluctant to clean it up and attempt to reproduce from scratch again (in case we want to collect more information from the current state), but I know how I got to this point, so I'm pretty confident it should be readily reproducible.

Steps to Reproduce:
1. have a /boot with very little free space left
2. run a "yum update" that pulls in a kernel package as an available update
3. yum successfully resolves all dependencies
4. yum successfully downloads all packages for the update
5. yum runs the transaction test and aborts with error messages about not enough free space on /boot to install the update kernel
6. remove a kernel package to free up some space on /boot
7. run yum-complete-transaction

Actual results:
yum-complete-transaction doesn't seem to run any of the "installs" from the unfinished transaction, it simply runs all the "erases".  In this case, it resolves all dependencies for those erases, and winds up pulling in 685 packages that it wants to remove...effectively hosing the entire system.

Expected results:
yum-complete-transaction runs all "installs" and then all "erases" from the unfinished transaction and leaves my system in the same state that it would have been in had the first "yum update" not aborted.

Additional info:
In this case, I've actually got two transactions in the /var/lib/yum/ directory:

# ls -la /var/lib/yum/
total 32
drwxr-xr-x  2 root root 4096 Apr  6 18:47 .
drwxr-xr-x 34 root root 4096 Mar 20 16:54 ..
-rw-r--r--  1 root root 1886 Apr  2 18:53 transaction-all.2009-04-02.18:53.18
-rw-r--r--  1 root root 2230 Apr  6 18:42 transaction-all.2009-04-06.18:42.23

yum-complete-transaction says it is processing the most recent one (the transaction from 04-06-2009), so I'll show it's contents:

# cat /var/lib/yum/transaction-all.2009-04-06.18\:42.23 
install 0:glib2-2.12.3-4.el5_3.1.x86_64                              
install 0:xen-libs-3.0.3-80.el5_3.2.x86_64                           
install 0:libvirt-0.3.3-14.el5_3.1.x86_64                            
install 4:perl-5.8.8-18.el5_3.1.x86_64                               
install 0:php-common-5.1.6-23.2.el5_3.x86_64                         
install 0:kernel-rt-                        
install 0:kernel-xen-2.6.18-128.1.6.el5.x86_64                       
install 0:systemtap-runtime-0.7.2-3.el5_3.x86_64                     
install 0:systemtap-0.7.2-3.el5_3.x86_64                             
install 0:php-cli-5.1.6-23.2.el5_3.x86_64                            
install 0:gstreamer-plugins-base-0.10.20-3.0.1.el5_3.x86_64          
install 0:xulrunner-                             
install 0:php-5.1.6-23.2.el5_3.x86_64                                
install 0:mod_nss-1.0.3-7.el5_3.1.x86_64                             
install 0:kernel-headers-2.6.18-128.1.6.el5.x86_64                   
install 0:kernel-devel-2.6.18-128.1.6.el5.x86_64                     
install 0:kernel-doc-2.6.18-128.1.6.el5.noarch                       
install 0:kernel-2.6.18-128.1.6.el5.x86_64                           
install 0:xen-libs-3.0.3-80.el5_3.2.i386                             
install 0:libvirt-0.3.3-14.el5_3.1.i386                              
install 0:glib2-2.12.3-4.el5_3.1.i386                                
install 0:libvirt-python-0.3.3-14.el5_3.1.x86_64                     
install 0:xen-3.0.3-80.el5_3.2.x86_64                                
install 0:xulrunner-                               
install 1:NetworkManager-0.7.0-4.el5_3.x86_64                        
install 1:NetworkManager-glib-0.7.0-4.el5_3.x86_64                   
install 1:NetworkManager-gnome-0.7.0-4.el5_3.x86_64                  
erase 1:NetworkManager-glib-0.7.0-3.el5.x86_64                       
erase 0:systemtap-0.7.2-2.el5.x86_64
erase 0:xulrunner-
erase 0:xulrunner-
erase 0:kernel-2.6.18-92.1.22.el5.x86_64
erase 0:xen-libs-3.0.3-80.el5.x86_64
erase 0:xen-3.0.3-80.el5.x86_64
erase 0:libvirt-0.3.3-14.el5.x86_64
erase 0:php-5.1.6-23.el5.x86_64
erase 0:kernel-devel-2.6.18-92.1.22.el5.x86_64
erase 0:php-common-5.1.6-23.el5.x86_64
erase 0:kernel-doc-2.6.18-128.1.1.el5.noarch
erase 0:glib2-2.12.3-2.fc6.i386
erase 0:mod_nss-1.0.3-6.el5.x86_64
erase 0:glib2-2.12.3-2.fc6.x86_64
erase 0:systemtap-runtime-0.7.2-2.el5.x86_64
erase 1:NetworkManager-0.7.0-3.el5.x86_64
erase 0:libvirt-python-0.3.3-14.el5.x86_64
erase 0:libvirt-0.3.3-14.el5.i386
erase 0:xen-libs-3.0.3-80.el5.i386
erase 1:NetworkManager-gnome-0.7.0-3.el5.x86_64
erase 0:gstreamer-plugins-base-0.10.20-3.el5.x86_64
erase 0:kernel-xen-2.6.18-92.1.22.el5.x86_64
erase 0:kernel-headers-2.6.18-128.1.1.el5.x86_64
erase 0:php-cli-5.1.6-23.el5.x86_64
erase 4:perl-5.8.8-18.el5.x86_64

I've also captured the output of yum-complete-transaction, but it's close to 3000 lines by the time it processes all dependencies, so I'm going to just add that as an attachment rather than paste it into the ticket.

Any other information you think you might need?
Comment 1 Chris Marcantonio 2009-04-08 11:29:53 EDT
Whoops...I forgot that yum-complete-transaction was provided by yum-utils, not yum itself.  Here's a little more version info, just for completeness:

# rpm -q yum-utils

# yum-complete-transaction --version
yum-complete-transactions - 1.0 (yum - 3.2.19)
Comment 2 seth vidal 2009-04-08 11:31:13 EDT
Can you run:

echo 'n' | yum-complete-transaction -d 7 

and attach that output?

Comment 3 Chris Marcantonio 2009-04-08 11:57:04 EDT
Created attachment 338744 [details]
output from "echo 'n' | yum-complete-transaction -d 7"

Comment 5 James Antill 2009-11-30 17:04:29 EST
 Closing as a dup. If we can get ACKs we can stop the worst problem (offering to erase everything).

*** This bug has been marked as a duplicate of bug 495911 ***

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