extras-buildsys/server ArchJob.py, 1.16.2.9, 1.16.2.9.4.1 Builder.py, 1.20.2.8, 1.20.2.8.4.1
Michael Schwendt (mschwendt)
fedora-extras-commits at redhat.com
Thu Jan 31 14:19:44 UTC 2008
Author: mschwendt
Update of /cvs/fedora/extras-buildsys/server
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv11137/server
Modified Files:
Tag: Plague-0_4_5
ArchJob.py Builder.py
Log Message:
plague-0.4.4.1-filedownloader.patch
plague-0.4.4.1-faster-downloads.patch
Index: ArchJob.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/server/ArchJob.py,v
retrieving revision 1.16.2.9
retrieving revision 1.16.2.9.4.1
diff -u -r1.16.2.9 -r1.16.2.9.4.1
--- ArchJob.py 23 Feb 2006 19:14:49 -0000 1.16.2.9
+++ ArchJob.py 31 Jan 2008 14:19:44 -0000 1.16.2.9.4.1
@@ -196,8 +196,9 @@
dl_dict[DL_WAIT_TIME] = 0
self._downloads[uf] = dl_dict
- def dl_callback(self, status, cb_data):
+ def dl_callback(self, status, cb_data, err_msg):
url = cb_data
+ self.builder.fwd_dl_callback(self)
self._download_lock.acquire()
dl_dict = self._downloads[url]
if status == 'done':
@@ -207,8 +208,8 @@
if dl_dict[DL_RETRIES] >= 10:
dl_dict[DL_STATUS] = STATUS_ERROR
else:
- print "%s (%s/%s): Failed to retrieve %s (attempt %d), trying again..." % (self.par_job.uid,
- self.par_job.package, self._target_dict['arch'], url, dl_dict[DL_RETRIES])
+ print "%s (%s/%s): Failed to retrieve %s (attempt %d) (Error %s), trying again..." % (self.par_job.uid,
+ self.par_job.package, self._target_dict['arch'], url, dl_dict[DL_RETRIES], err_msg)
dl_dict[DL_STATUS] = STATUS_WAITING
dl_dict[DL_WAIT_TIME] = 5 # Wait a bit before trying again
dl_dict[DL_RETRIES] = dl_dict[DL_RETRIES] + 1
Index: Builder.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/server/Builder.py,v
retrieving revision 1.20.2.8
retrieving revision 1.20.2.8.4.1
diff -u -r1.20.2.8 -r1.20.2.8.4.1
--- Builder.py 19 Feb 2006 06:30:15 -0000 1.20.2.8
+++ Builder.py 31 Jan 2008 14:19:44 -0000 1.20.2.8.4.1
@@ -86,6 +86,9 @@
self._when_died = 0
self._server_cfg = cfg
+ self._archjob_dl_lock = threading.Lock()
+ self._archjob_dl_queue = []
+
certs = {}
if self._server_cfg.get_bool("Builders", "use_ssl"):
certs['key_and_cert'] = self._server_cfg.get_str("SSL", "server_key_and_cert")
@@ -325,6 +328,11 @@
EmailUtils.email_result(sender, addr, msg, subject)
self._when_died = 0
+ def fwd_dl_callback(self,job):
+ self._archjob_dl_lock.acquire()
+ self._archjob_dl_queue.append(job)
+ self._archjob_dl_lock.release()
+
def run(self):
DebugUtils.registerThreadName(self)
while not self._stop:
@@ -356,7 +364,28 @@
self._server_lock.release()
- time.sleep(20)
+ last_time = time.time()
+ while (time.time() <= last_time+20):
+
+ # Process archjobs which had download callbacks,
+ # so next file download is started sooner.
+ self._archjob_dl_lock.acquire()
+ dl_jobs = self._archjob_dl_queue
+ self._archjob_dl_queue = []
+ self._archjob_dl_lock.release()
+ if len(dl_jobs):
+ status_change = False
+ self._server_lock.acquire()
+ for j in dl_jobs:
+ old_status = j.get_status()
+ j.process()
+ if old_status != j.get_status():
+ status_change = True
+ self._server_lock.release()
+ if status_change:
+ break
+
+ time.sleep(1)
def available(self):
"""
More information about the fedora-extras-commits
mailing list