Bug 745635 - "RPMDB altered outside of yum" all the time after history transaction from future
Summary: "RPMDB altered outside of yum" all the time after history transaction from fu...
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Fedora
Classification: Fedora
Component: yum
Version: 15
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Fedora Packaging Toolset Team
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-10-12 21:27 UTC by Jason Tibbitts
Modified: 2014-01-21 23:20 UTC (History)
7 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2012-08-07 17:59:38 UTC
Type: ---


Attachments (Terms of Use)

Description Jason Tibbitts 2011-10-12 21:27:26 UTC
Description of problem:
Whenever yum has to install a new GPG key before installing a package, it also warns about the RPMDB being modified.  This has happened a few times to me today as I'm bringing up a new system.

Version-Release number of selected component (if applicable):
yum-3.2.29-9.fc15.noarch

How reproducible:
Seemingly every time yum prompts me to import a GPG key.


Here's a snippet; so far today my only direct use of rpm has been rpm -q:

Downloading Packages:
Setting up and reading Presto delta metadata
Processing delta metadata
Package(s) data still to download: 6.4 M
flash-plugin-11.0.1.152-release.x86_64.rpm               | 6.4 MB    00:02     
warning: rpmts_HdrFromFdno: Header V3 DSA/SHA1 Signature, key ID f6777c67: NOKEY
Public key for flash-plugin-11.0.1.152-release.x86_64.rpm is not installed
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-adobe-linux
Importing GPG key 0xF6777C67:
 Userid : Adobe Systems Incorporated (Linux RPM Signing Key) <secure>
 Package: adobe-release-x86_64-1.0-1.noarch (@/adobe-release-x86_64-1.0-1.noarch)
 From   : /etc/pki/rpm-gpg/RPM-GPG-KEY-adobe-linux
Is this ok [y/N]: y
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
  Installing : flash-plugin-11.0.1.152-release.x86_64              1/1 

Here's another, installing from rpmfusion nonfree:
Total                    1.1 MB/s | 138 MB     02:09     
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-fedora-15-x86_64
Importing GPG key 0x6D0C8EC2:
 Userid : RPM Fusion nonfree repository for Fedora (15) <rpmfusion-buildsys.org>
 Package: rpmfusion-nonfree-release-13-4.noarch (@/rpmfusion-nonfree-release-stable.noarch)
 From   : /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-fedora-15-x86_64
Is this ok [y/N]: y
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
  Installing : faac-1.28-2.fc12.x86_64               1/12 

And another, installing from rpmfusion free:
Total                      651 kB/s | 4.8 MB     00:07     
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-free-fedora-15-x86_64
Importing GPG key 0x00A4D52B:
 Userid : RPM Fusion free repository for Fedora (15) <rpmfusion-buildsys.org>
 Package: rpmfusion-free-release-13-4.noarch (@/rpmfusion-free-release-stable.noarch)
 From   : /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-free-fedora-15-x86_64
Is this ok [y/N]: y
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
  Installing : lame-libs-3.98.4-1.fc14.x86_64          1/13

Comment 1 Jason Tibbitts 2011-10-12 22:20:18 UTC
After more investigation, I'd hazard a guess that this is related to the fact that when I installed the system, the clock was several hours off.  After installing chrony and letting it skew the clock back, the system is back in shape but yum probably doesn't like seeing dates in the future.

I'll check again tomorrow and if it's cleared up then I'll close NOTABUG.

Comment 2 James Antill 2011-10-13 14:29:16 UTC
 Yeh, so the problem is that yum orders the history transactions by the start time of the transactions ... and then takes the "newest" as the last transaction, taking the rpmdb version from that.

 So if your clock is massively in the future for one transaction, that'll always be the "newest" ... and thus. the rpmdb version will always be compared against it ... and always fail.

 Blah. We should probably do something better here, I just didn't want to rely on the assumption that the history tids would always go up ... but that probably seems better than this.

Comment 3 James Antill 2011-10-13 14:35:35 UTC
Try this patch:

commit 5411c80ee0ab81a4f8160950019ef32444557efc
Author: James Antill <james>
Date:   Thu Oct 13 10:35:05 2011 -0400

    Ignore time skew by using sqlite IDs instead to order transactions. BZ 74563

diff --git a/yum/history.py b/yum/history.py
index 8e62f50..0dc28c3 100644
--- a/yum/history.py
+++ b/yum/history.py
@@ -1204,7 +1204,7 @@ class YumHistory:
         if tids and len(tids) <= yum.constants.PATTERNS_INDEXED_MAX:
             params = tids = list(set(tids))
             sql += " WHERE tid IN (%s)" % ", ".join(['?'] * len(tids))
-        sql += " ORDER BY beg_ts DESC, tid ASC"
+        sql += " ORDER BY tid DESC"
         if limit is not None:
             sql += " LIMIT " + str(limit)
         executeSQL(cur, sql, params)

Comment 4 Jason Tibbitts 2011-10-13 14:39:43 UTC
Of course, now reality has caught up to where my clock was set and the errors have gone away.  Let me set up a test machine at work and skew the clock around a bit.

Comment 5 Need Real Name 2011-12-17 20:51:09 UTC
2011-05-05 Run yum transaction with wrong date.
(fix date)
2011-01-01 Run yum transaction.

Would it be possible for the second yum transaction to notice the error so that it's not displayed again?

Comment 6 Fedora Admin XMLRPC Client 2012-04-27 15:40:45 UTC
This package has changed ownership in the Fedora Package Database.  Reassigning to the new owner of this component.

Comment 7 Fedora End Of Life 2012-08-07 17:59:40 UTC
This message is a notice that Fedora 15 is now at end of life. Fedora
has stopped maintaining and issuing updates for Fedora 15. It is
Fedora's policy to close all bug reports from releases that are no
longer maintained. At this time, all open bugs with a Fedora 'version'
of '15' have been closed as WONTFIX.

(Please note: Our normal process is to give advanced warning of this
occurring, but we forgot to do that. A thousand apologies.)

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, feel free to reopen
this bug and simply change the 'version' to a later Fedora version.

Bug Reporter: Thank you for reporting this issue and we are sorry that
we were unable to fix it before Fedora 15 reached end of life. If you
would still like to see this bug fixed and are able to reproduce it
against a later version of Fedora, you are encouraged to click on
"Clone This Bug" (top right of this page) and open it against that
version of Fedora.

Although we aim to fix as many bugs as possible during every release's
lifetime, sometimes those efforts are overtaken by events. Often a
more recent Fedora release includes newer upstream software that fixes
bugs or makes them obsolete.

The process we are following is described here:
http://fedoraproject.org/wiki/BugZappers/HouseKeeping


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