Hide Forgot
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
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.
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.
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)
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.
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?
This package has changed ownership in the Fedora Package Database. Reassigning to the new owner of this component.
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