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