RPM

ts.order() returns wrong packages erasing order for 'yum remove' and 'yum groupremove'

Bug #651487 reported by Jeff Johnson
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
RPM
New
Undecided
Unassigned
Fedora
Fix Released
Critical

Bug Description

tracker

Revision history for this message
In , Robinson (robinson-redhat-bugs) wrote :

Description of problem:
ts.order() returns wrong package removal order for yum remove/groupremove

Version-Release number of selected component (if applicable):
  rpm-4.4.2-47.el5.x86_64
  rpm-python-4.4.2-47.el5.x86_64
  yum-3.0.5-1.el5.centos.5.noarch

How reproducible:
  Every time.

Steps to Reproduce:
1. create 4 packages PA, PB, PC, PP, let PA, PB and PC depends(requires)
package PP; Let the %preun scripts of PA, PB, PC refers to files in PP.

2. run 'yum install PA PB PC PP' to install all 4 packages. this will install
all 4 packages without problems.

3. run 'yum remove PA PB PC PP' now, it will fails the operation: only PA, PP
are removed, while the removal of PB and PC failed because the %preun scripts'
failure of PB and PC. The reason is: the depended packge PP is removed before
PB and PC and so gone the file(s) refered.

Actual results:

 PA, PP removed; PB, PC failed. the remove operation returns wrong results.

Expected results:

 All PA, PB, PC and PP should be removed

Additional info:

 The ts.order() returns wrong results.

 After the ts.orders() is run at line 470 in /usr/share/yum-cli/cli.py in
debugging mode, the debugging code "for te in self.ts: print te" returns:

 'PP, PB, PC'

 Thi is good for installation/upgrade operation, but for removal operation,
the correct sequence should be:

 'PB, PC, PP'

 because removal of PP will definitely fail PB, and PC.

Observation:

 command line 'rpm -e PA PP PB PC' has reported no problems, but we need the
python based 'yum remove' and 'yum groupremove' for automatic administration.
'yum groupremove' has the same problem as 'yum remove', which as skvidal of
yum development said, due to the bug of ts.order() from rpm-python/rpm.

Revision history for this message
In , Panu (panu-redhat-bugs) wrote :

*** Bug 215929 has been marked as a duplicate of this bug. ***

Revision history for this message
In , Panu (panu-redhat-bugs) wrote :

*** Bug 475183 has been marked as a duplicate of this bug. ***

Revision history for this message
In , Panu (panu-redhat-bugs) wrote :

*** Bug 541637 has been marked as a duplicate of this bug. ***

Jeff Johnson (n3npq)
tags: added: order python rhel yum
Revision history for this message
In , Panu (panu-redhat-bugs) wrote :

Proper erasure ordering is implemented in RHEL 6 rpm. It is not however backportable to RHEL 5 due to the API changes it requires.

Changed in fedora:
importance: Unknown → Critical
status: Unknown → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.