extras-buildsys/server BuildMaster.py, 1.35.2.1, 1.35.2.1.4.1 Builder.py, 1.20.2.8.4.1, 1.20.2.8.4.2 DBManager.py, 1.1.2.2, 1.1.2.2.4.1 PackageJob.py, 1.31.2.10.4.2, 1.31.2.10.4.3 Repo.py, 1.16.2.3, 1.16.2.3.4.1 User.py, 1.7, 1.7.6.1 UserInterface.py, 1.58.2.2.4.1, 1.58.2.2.4.2

Michael Schwendt (mschwendt) fedora-extras-commits at redhat.com
Thu Jan 31 14:30:44 UTC 2008


Author: mschwendt

Update of /cvs/fedora/extras-buildsys/server
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv14521/server

Modified Files:
      Tag: Plague-0_4_5
	BuildMaster.py Builder.py DBManager.py PackageJob.py Repo.py 
	User.py UserInterface.py 
Log Message:
plague-0.4.4.1-buildsys-fixes.patch 




Index: BuildMaster.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/server/BuildMaster.py,v
retrieving revision 1.35.2.1
retrieving revision 1.35.2.1.4.1
diff -u -r1.35.2.1 -r1.35.2.1.4.1
--- BuildMaster.py	29 Nov 2005 06:36:43 -0000	1.35.2.1
+++ BuildMaster.py	31 Jan 2008 14:30:13 -0000	1.35.2.1.4.1
@@ -72,6 +72,9 @@
         threading.Thread.__init__(self)
         self.setName("BuildMaster")
 
+    def _cleanup(self):
+        del self._cursor, self._dbcx
+
     def _requeue_interrupted_jobs(self):
         """ Restart interrupted jobs from our db. """
         self._cursor.execute("SELECT uid FROM jobs WHERE (status!='needsign' AND status!='failed' AND status!='finished') ORDER BY uid")
@@ -416,3 +419,4 @@
             while not self._have_work() and time.time() <= last_time + 5:
                 time.sleep(0.25)
 
+        self._cleanup()


Index: Builder.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/server/Builder.py,v
retrieving revision 1.20.2.8.4.1
retrieving revision 1.20.2.8.4.2
diff -u -r1.20.2.8.4.1 -r1.20.2.8.4.2
--- Builder.py	31 Jan 2008 14:19:44 -0000	1.20.2.8.4.1
+++ Builder.py	31 Jan 2008 14:30:13 -0000	1.20.2.8.4.2
@@ -106,6 +106,10 @@
         (self._alive, target_list) = self._ping_builder()
         if self._alive:
             self._init_builder(target_list)
+        else:
+            # Treat the builder as timed out and ping it periodically
+            self._ping_timeout = time.time()
+            self._suspend_reason = SUSPEND_TIMEOUT
 
     def _init_builder(self, target_list):
         self._target_list = target_list


Index: DBManager.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/server/DBManager.py,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.2.4.1
diff -u -r1.1.2.2 -r1.1.2.2.4.1
--- DBManager.py	24 Oct 2005 15:34:24 -0000	1.1.2.2
+++ DBManager.py	31 Jan 2008 14:30:13 -0000	1.1.2.2.4.1
@@ -198,6 +198,10 @@
 
         return dbcx
 
+    def __del__(self):
+        self._dbcx.close()
+        del self._dbcx
+
 
 class mysqlEngineClass(BaseDBEngineClass):
 
@@ -247,6 +251,10 @@
 
         return dbcx
 
+    def __del__(self):
+        self._dbcx.close()
+        del self._dbcx
+
 
 db_engines = {
     'sqlite':   sqliteEngineClass,


Index: PackageJob.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/server/PackageJob.py,v
retrieving revision 1.31.2.10.4.2
retrieving revision 1.31.2.10.4.3
diff -u -r1.31.2.10.4.2 -r1.31.2.10.4.3
--- PackageJob.py	31 Jan 2008 14:02:38 -0000	1.31.2.10.4.2
+++ PackageJob.py	31 Jan 2008 14:30:13 -0000	1.31.2.10.4.3
@@ -463,6 +463,9 @@
         """ Called by the BuilderManager when it's started a new arch job for us """
         self._archjobs_lock.acquire()
         jobarch = job.arch()
+        if not self.archjobs.has_key(jobarch):
+            log(("%s (%s/%s): Didn't have key for '%s', added it." % (self.uid, self.package, jobarch, jobarch)))
+            self.archjobs[jobarch] = None
         if self.archjobs[jobarch] != None:
             log("%s (%s/%s): Already have archjob for this arch (%s).  New job UID is %s." % (self.uid, \
                     self.package, jobarch, self.archjobs[jobarch].jobid, job.jobid))
@@ -654,7 +657,10 @@
                     # the original SRPM.
                     if not os.path.exists(srpm_file):
                         shutil.copy(src_file, srpm_file)
-                os.remove(src_file)
+                try:
+                    os.remove(src_file)
+                except OSError, e:
+                    debugprint("%d: Error cleaning up job files - '%s'" % (self.uid, e))
 
         # If there were no builder-built SRPMs, keep the original around
         if not os.path.exists(srpm_file):


Index: Repo.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/server/Repo.py,v
retrieving revision 1.16.2.3
retrieving revision 1.16.2.3.4.1
diff -u -r1.16.2.3 -r1.16.2.3.4.1
--- Repo.py	29 Nov 2005 06:36:44 -0000	1.16.2.3
+++ Repo.py	31 Jan 2008 14:30:13 -0000	1.16.2.3.4.1
@@ -120,7 +120,9 @@
 
         (s, o) = commands.getstatusoutput('/usr/bin/createrepo -q -c %s -x "*.src.rpm" -x "*.debuginfo.rpm" %s' % (self._repo_cache_dir, self._repodir))
         if s != 0:
-            print "Error: createrepo failed with exit status %d!  Output: '%s'" % (s, o)
+            print "Repo Error (%s): createrepo failed with exit status %d!  Output: '%s'" % (target_string, s, o)
+
+        del target_string
 
     def _run_repo_script(self):
         target_str = self._target_cfg.target_string()


Index: User.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/server/User.py,v
retrieving revision 1.7
retrieving revision 1.7.6.1
diff -u -r1.7 -r1.7.6.1
--- User.py	15 Aug 2005 03:18:20 -0000	1.7
+++ User.py	31 Jan 2008 14:30:13 -0000	1.7.6.1
@@ -68,6 +68,7 @@
                     'user_admin BOOLEAN, '    \
                     'server_admin BOOLEAN)')
             dbcx.commit()
+        del curs, dbcx
 
 
     def new_authed_user(self, email, client_address):
@@ -88,5 +89,6 @@
         else:
             if self._cfg.get_bool("UI", "guest_allowed"):
                 user = User('guest at guest', True)
+        del curs, dbcx
         return user
 


Index: UserInterface.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/server/UserInterface.py,v
retrieving revision 1.58.2.2.4.1
retrieving revision 1.58.2.2.4.2
diff -u -r1.58.2.2.4.1 -r1.58.2.2.4.2
--- UserInterface.py	31 Jan 2008 14:09:19 -0000	1.58.2.2.4.1
+++ UserInterface.py	31 Jan 2008 14:30:13 -0000	1.58.2.2.4.2
@@ -181,6 +181,7 @@
             dbcx = self._db_manager.dbcx()
             curs = dbcx.cursor()
         except StandardError, e:
+            del curs, dbcx
             return (-1, "Unable to access job database: '%s'" % e)
         curs.execute(sql)
         job = dbcx.fetchone(curs)
@@ -193,8 +194,7 @@
             self._bm.requeue_job(uid)
             result = (0, "Success: Job %d has been requeued." % uid)
 
-        del curs
-        del dbcx
+        del curs, dbcx
         return result        
 
     def _kill_job(self, email, job, jobid):
@@ -315,6 +315,7 @@
             dbcx = self._db_manager.dbcx()
             curs = dbcx.cursor()
         except StandardError, e:
+            del curs, dbcx
             return (-1, "Unable to access job database: '%s'" % e, [])
         curs.execute(sql)
         data = dbcx.fetchall(curs)
@@ -363,8 +364,7 @@
                     if job['uid'] == ajrec['parent_uid']:
                         job['archjobs'].append(copy.deepcopy(ajrec))
 
-        del curs
-        del dbcx
+        del curs, dbcx
         return (0, "Success.", jobs)
 
 
@@ -388,8 +388,7 @@
         curs.execute(sql)
         job = dbcx.fetchone(curs)
         if not job:
-            del curs
-            del dbcx
+            del curs, dbcx
             return (-1, "Error: Invalid job UID.", {})
         jobrec = {}
         jobrec['uid'] = job['uid']
@@ -436,8 +435,7 @@
 
         ret_job = copy.deepcopy(jobrec)
 
-        del curs
-        del dbcx
+        del curs, dbcx
         return (0, "Success.", ret_job)
 
 
@@ -473,6 +471,13 @@
         return self._bm.is_paused()
 
     def finish(self, uid_list):
+        try:
+            dbcx = self._db_manager.dbcx()
+            curs = dbcx.cursor()
+        except StandardError, e:
+            del curs, dbcx
+            return (-1, "Unable to access job database: '%s'" % e)
+
         uids = ''
         for uid in uid_list:
             uid = validate_uid(uid)
@@ -486,16 +491,10 @@
         if len(uids):
             sql = "UPDATE jobs SET status='finished' WHERE %s" % uids
 
-            try:
-                dbcx = self._db_manager.dbcx()
-                curs = dbcx.cursor()
-            except StandardError, e:
-                return (-1, "Unable to access job database: '%s'" % e)
             curs.execute(sql)
             dbcx.commit()
-            del curs
-            del dbcx
 
+        del curs, dbcx
         return (0, "Success.")
 
     def srpm_upload_dir(self, target_alias):
@@ -538,6 +537,7 @@
             dbcx = self._db_manager.dbcx()
             curs = dbcx.cursor()
         except StandardError, e:
+            del curs, dbcx
             return (-1, "Unable to access job database: '%s'" % e)
 
         curs.execute(sql)
@@ -551,8 +551,7 @@
         else:
             result = UserInterface.requeue(self, uid)
 
-        del curs
-        del dbcx
+        del curs, dbcx
         return result
 
     def kill_job(self, email, jobid):
@@ -627,6 +626,7 @@
             dbcx = self._db_manager.dbcx()
             curs = dbcx.cursor()
         except StandardError, e:
+            del curs, dbcx
             return (-1, "Unable to access job database: '%s'" % e)
 
         curs.execute(sql)
@@ -656,8 +656,7 @@
 
             final_uid_list.append(uid)
 
-        del curs
-        del dbcx
+        del curs, dbcx
 
         if error:
             return error




More information about the fedora-extras-commits mailing list