[yum-cvs] yum/yum depsolve.py, 1.105.2.5, 1.105.2.6 rpmsack.py, 1.32.2.2, 1.32.2.3

Seth Vidal skvidal at linux.duke.edu
Thu Dec 21 08:01:49 UTC 2006


Update of /home/groups/yum/cvs/yum/yum
In directory login1.linux.duke.edu:/tmp/cvs-serv5210/yum

Modified Files:
      Tag: yum-3_0_X
	depsolve.py rpmsack.py 
Log Message:

remove the ts.close() calls in rpmsack. See if it helps the rpmdb locking
problems. Add in some debug output in the depsolving so we can see how much
time is spent per dep and what kind of dep it is


Index: depsolve.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/depsolve.py,v
retrieving revision 1.105.2.5
retrieving revision 1.105.2.6
diff -u -r1.105.2.5 -r1.105.2.6
--- depsolve.py	19 Dec 2006 03:48:57 -0000	1.105.2.5
+++ depsolve.py	21 Dec 2006 08:01:47 -0000	1.105.2.6
@@ -28,6 +28,7 @@
 from constants import *
 import packages
 import logginglevels
+import time 
 
 class Depsolve(object):
     def __init__(self):
@@ -229,6 +230,7 @@
             self.verbose_logger.debug('# of Deps = %d', len(deps))
             depcount = 0
             for dep in deps:
+                dep_start_time = time.time()
                 ((name, version, release), (needname, needversion), flags, suggest, sense) = dep
                 depcount += 1
                 self.verbose_logger.log(logginglevels.DEBUG_2,
@@ -246,7 +248,11 @@
                 else: # wtf?
                     self.logger.critical('Unknown Sense: %d', sense)
                     continue
-
+                
+                dep_end_time = time.time()
+                dep_proc_time = dep_end_time - dep_start_time
+                self.verbose_logger.log(logginglevels.DEBUG_2, 'processing dep took: %f' % dep_proc_time)
+                
                 missingdep += missing
                 conflicts += conflict
                 CheckDeps += checkdep

Index: rpmsack.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/rpmsack.py,v
retrieving revision 1.32.2.2
retrieving revision 1.32.2.3
diff -u -r1.32.2.2 -r1.32.2.3
--- rpmsack.py	12 Oct 2006 17:53:26 -0000	1.32.2.2
+++ rpmsack.py	21 Dec 2006 08:01:47 -0000	1.32.2.3
@@ -46,7 +46,8 @@
     def __init__(self, root='/'):
         self.root = root
         self._header_dict = {}
-
+        self.ts = None
+        
     def _get_pkglist(self):
         '''Getter for the pkglist property. 
         Returns a list of package tuples.
@@ -57,7 +58,9 @@
     pkglist = property(_get_pkglist, None)
 
     def readOnlyTS(self):
-        return initReadOnlyTransaction(root=self.root)
+        if not self.ts:
+            self.ts =  initReadOnlyTransaction(root=self.root)
+        return self.ts
 
     def buildIndexes(self):
         # Not used here
@@ -84,7 +87,6 @@
             if not result.has_key(pkg.pkgid):
                 result[pkg.pkgid] = pkg
         del mi
-        ts.close()
         
         fileresults = self.searchFiles(name)
         for pkg in fileresults:
@@ -104,7 +106,7 @@
             if not result.has_key(pkg.pkgid):
                 result[pkg.pkgid] = pkg
         del mi
-        ts.close()
+
         
         return result.values()
         
@@ -132,7 +134,6 @@
                         result[pkg.pkgid] = pkg
         
         del mi
-        ts.close()
         
         return result.values()
 
@@ -213,8 +214,6 @@
             if hdr['name'] != 'gpg-pubkey':
                 yield (hdr, mi.instance())
         del mi
-        ts.close()
-        del ts
 
     def _header_from_index(self, idx):
         """returns a package header having been given an index"""
@@ -232,8 +231,6 @@
             del hdr
 
         del mi
-        ts.close()
-        del ts
 
     def _make_header_dict(self):
         """generate a header indexes dict that is pkgtup = index number"""
@@ -290,7 +287,6 @@
             if hdr['name'] != 'gpg-pubkey':
                 yield (hdr, mi.instance())
 
-        ts.close()
 
     def _makePackageObject(self, hdr, index):
         po = YumInstalledPackage(hdr)




More information about the Yum-cvs-commits mailing list