[yum-commits] Branch 'yum-3_2_X' - yum/rpmsack.py
james at osuosl.org
Wed May 5 06:17:21 UTC 2010
yum/rpmsack.py | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
Author: James Antill <james at and.org>
Date: Wed May 5 02:09:58 2010 -0400
Work around mock setting mtime on var/lib/Packages, for it's "caches".
Somehow the Packages file gets out of sync. with yum's cache/installed
in the mock installroot cache, but due to the mtime check we don't see
it and thus. blow up.
This does mean we'll blow the cache for normal use whenever ctime
changes now ... but hopefully that shouldn't be much more often.
We are only hitting this now due to the installroot fixes that just
diff --git a/yum/rpmsack.py b/yum/rpmsack.py
index 6a40939..b457cc9 100644
@@ -847,9 +847,11 @@ class RPMDBPackageSack(PackageSackBase):
rpmdbfname = self.root + "/var/lib/rpm/Packages"
if os.path.exists(rpmdbvfname) and os.path.exists(rpmdbfname):
- # See if rpmdb has "changed" ...
+ # See if rpmdb has "changed" ... NOTE that we need to use ctime
+ # due to mock, because it will save and restore arbitrary rpmdb's
+ # on us and will helpfully reset the mtime!
nmtime = os.path.getmtime(rpmdbvfname)
- omtime = os.path.getmtime(rpmdbfname)
+ omtime = os.path.getctime(rpmdbfname)
if omtime <= nmtime:
rpmdbv = open(rpmdbvfname).readline()[:-1]
self._have_cached_rpmdbv_data = rpmdbv
More information about the Yum-commits