Bug 604253

Summary: Yum history recording install as reinstall
Product: [Fedora] Fedora Reporter: Shawn <jvillain>
Component: yumAssignee: Seth Vidal <skvidal>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: rawhideCC: ffesti, james.antill, maxamillion, pmatilai, tim.lauridsen
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-06-16 04:55:10 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Grab all the text from the terminal to show the steps and results none

Description Shawn 2010-06-15 17:53:27 UTC
Use yum to install some thing.

#yum install some-package

Wait for it to sucsessfully install and do an rpm -qa | some-package to make sure it did install correctly.

Look for the history ID of the last transaction

#yum history

Grab the last transaction number

#yum history undo <what ever the last number was>

Yum will then pop up and offer to reinstall the application rather than delete it.
 
Version-Release number of selected component (if applicable):


rpm -qa |grep yum
  yum-utils-1.1.27-2.fc14.noarch
  anaconda-yum-plugins-1.0-5.fc12.noarch
  yum-presto-0.6.2-1.fc13.noarch
  yum-3.2.27-15.fc14.noarch
  yum-metadata-parser-1.1.4-1.fc13.x86_64


How reproducible:

All ways

Steps to Reproduce:

As above

Actual results:

Continuing with the transaction will perform a reinstall

Expected results:

The transaction would be wound back and the packages from the transaction removed.


Additional info:

I will add an attachment showing all of the steps.

Comment 1 Shawn 2010-06-15 17:58:59 UTC
Created attachment 424250 [details]
Grab all the text from the terminal to show the steps and results

Comment 2 seth vidal 2010-06-15 18:13:15 UTC
So first:
error: rpmdbNextIterator: skipping h#    1640 blob size(35556): BAD, 8 + 16 * il(352519424) + dl(1242096322)

^^^^ that is not good, not good at all.


can you make this problem happen w/o the above happening?


Can you run rpm --rebuilddb to see if you're rpm db is unwell?

Comment 3 James Antill 2010-06-15 18:23:03 UTC
 Also on the off chance that this is a yum bug, this is likely where it started going wrong:

   196 |  <jvillain>            | 2010-06-13 22:00 | Reinstall      |    4 EE
   195 |  <jvillain>            | 2010-06-12 13:21 | I, O, U        |   65 EE

So can you run:

yum history info 196

...and do you recall what you actually did at that point (or around that point).

 However the fact all the history entries are marked with "EE" suggests that the rpmdb errors have been happening for a long time, so I'm very suspicious of that being the problem.

Comment 4 Shawn 2010-06-15 18:59:11 UTC
I have had the DB error messages since around FC11. At the time I went in and deleted the RPM DB files and let them rebuild and I still get those messages. I eventually came to the conclusion that they were debugging messages put in by the developers. Guess I was wrong. I have dome many yum history undo transactions since those messages started. 

Just to check though.

# rpm --rebuilddb
error: rpmdbNextIterator: skipping h#    1640 blob size(35556): BAD, 8 + 16 * il(352519424) + dl(1242096322)

# yum history undo 201
Loaded plugins: local, presto
Undoing transaction 201, from Tue Jun 15 10:50:28 2010
    Reinstall    kdesvn-1.5.3-1.fc14.x86_64
Resolving Dependencies
--> Running transaction check
---> Package kdesvn.x86_64 0:1.5.3-1.fc14 set to be reinstalled
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================================================================================================================================================================================
 Package                                                Arch                                                   Version                                                         Repository                                               Size
=============================================================================================================================================================================================================================================
Reinstalling:
 kdesvn                                                 x86_64                                                 1.5.3-1.fc14                                                    rawhide                                                 2.1 M

Transaction Summary
=============================================================================================================================================================================================================================================
Reinstall     1 Package(s)

Total download size: 2.1 M
Installed size: 4.4 M
Is this ok [y/N]: 


So no change in behaviour. 

# yum history info 196
Loaded plugins: local, presto
Transaction ID : 196
Begin time     : Sun Jun 13 22:00:14 2010
Begin rpmdb    : 1656:c4817c4b1ac6f0724654ed1d745b0eb3c50b2c7b
End time       :            22:01:09 2010 (55 seconds)
End rpmdb      : 1660:0d408313365bc72d519226794d8c09b79aeaa625
User           :  <jvillain>
Return-Code    : Success
Command Line   : install kdevelop
Transaction performed with:
    Installed    rpm-4.8.1-1.fc14.x86_64
    Installed    yum-3.2.27-15.fc14.noarch
    Installed    yum-presto-0.6.2-1.fc13.noarch
Packages Altered:
    Reinstall    kdevelop-9:4.0.0-2.fc14.x86_64
    Reinstall    kdevelop-libs-9:4.0.0-2.fc14.x86_64
    Reinstall    kdevplatform-1.0.0-1.fc14.x86_64
    Reinstall    kdevplatform-libs-1.0.0-1.fc14.x86_64
Scriptlet output:
   1 error: rpmdbNextIterator: skipping h#    1640 blob size(35556): BAD, 8 + 16 * il(352519424) + dl(1242096322)
   2 error: rpmdb: damaged header #1640 retrieved -- skipping.
history info


Are you able to recreate this bug on your end?

Comment 5 James Antill 2010-06-15 23:25:04 UTC
> I have dome many yum history undo transactions since those messages started.

It's not the "undo" operation that's the problem ... it's that yum is recording your "install" transactions as "reinstall" transactions. And I've just checked and this appears to be a bug in the latest HEAD/rawhide ... all installs are being converted to "reinstall".

Comment 6 James Antill 2010-06-15 23:27:53 UTC
Here's the fix:


commit 10b718b3a09904789de8139dec4f1cd36a43e449
Author: James Antill <james>
Date:   Tue Jun 15 19:27:00 2010 -0400

    Fix history recording installs, from the txmbr cleanup

diff --git a/yum/history.py b/yum/history.py
index a676773..ca87335 100644
--- a/yum/history.py
+++ b/yum/history.py
@@ -343,7 +343,7 @@ class YumHistory:
     def txmbr2state(txmbr):
         state = None
         if txmbr.output_state in (TS_INSTALL, TS_TRUEINSTALL):
-            if hasattr(txmbr, 'reinstall'):
+            if txmbr.reinstall:
                 state = 'Reinstall'
             elif txmbr.downgrades:
                 state = 'Downgrade'

...it should apply against rawhide. I'll get another rawhide out tonight.

 But you should get that rpm warning/problem fixed too.