Bug 494897 - yum-complete-transaction not behaving correctly on an unfinished transaction
Summary: yum-complete-transaction not behaving correctly on an unfinished transaction
Keywords:
Status: CLOSED DUPLICATE of bug 495911
Alias: None
Product: Red Hat Enterprise Linux 5
Classification: Red Hat
Component: yum-utils
Version: 5.3
Hardware: All
OS: Linux
medium
medium
Target Milestone: rc
: ---
Assignee: James Antill
QA Contact: BaseOS QE Security Team
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2009-04-08 15:26 UTC by Chris Marcantonio
Modified: 2014-01-21 06:12 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2009-11-30 22:04:29 UTC
Target Upstream Version:
Embargoed:


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

Description Chris Marcantonio 2009-04-08 15:26:53 UTC
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-3.2.19-18.el5

# yum --version
3.2.19
  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> 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> at 2008-01-18 22:00

  Installed: rpm-4.4.2.3-9.el5.x86_64 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> 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> 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-2.6.24.7-108.el5rt.x86_64                        
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-1.9.0.7-3.el5.x86_64                             
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-1.9.0.7-3.el5.i386                               
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-1.9.0.7-1.el5.i386
erase 0:xulrunner-1.9.0.7-1.el5.x86_64
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 15:29:53 UTC
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-utils-1.1.16-13.el5

# yum-complete-transaction --version
yum-complete-transactions - 1.0 (yum - 3.2.19)

Comment 2 seth vidal 2009-04-08 15:31:13 UTC
Can you run:

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

and attach that output?

thanks

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

Attached.

Comment 5 James Antill 2009-11-30 22:04:29 UTC
 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.