extras-buildsys/server ArchJob.py, 1.16.2.3, 1.16.2.4 PackageJob.py, 1.31.2.4, 1.31.2.5

Daniel Williams (dcbw) fedora-extras-commits at redhat.com
Tue Nov 15 05:22:06 UTC 2005


Author: dcbw

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

Modified Files:
      Tag: STABLE_0_4
	ArchJob.py PackageJob.py 
Log Message:
2005-11-15  Dan Williams  <dcbw at redhat.com>

    * server/ArchJob.py
      server/PackageJob.py
        - Log kill requests




Index: ArchJob.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/server/ArchJob.py,v
retrieving revision 1.16.2.3
retrieving revision 1.16.2.4
diff -u -r1.16.2.3 -r1.16.2.4
--- ArchJob.py	14 Nov 2005 01:27:50 -0000	1.16.2.3
+++ ArchJob.py	15 Nov 2005 05:22:04 -0000	1.16.2.4
@@ -54,6 +54,7 @@
         self._starttime = time.time()
         self._endtime = 0
         self._die = False
+        self._die_user_requested = False
         self._die_lock = threading.Lock()
 
         # SSL certificate and key filenames
@@ -269,10 +270,14 @@
         # If we're supposed to die, tell the builder and clean up
         self._die_lock.acquire()
         should_die = self._die
+        user_requested = self._die_user_requested
         self._die_lock.release()
         if should_die:
             self._server.die(self.jobid)
             self._set_status('done')
+            if user_requested:
+                print "%s (%s/%s): %s - killed." % (self.par_job.uid, self.par_job.package,
+                        self._target_dict['arch'], self.jobid)
             return
 
         try:
@@ -308,11 +313,15 @@
             self._set_status('done')
             self.par_job.remove_arch_job(self)
 
-    def die(self):
+    def die(self, user_requested=False):
         # Can be called from other threads
         if self._status == 'running':
             self._die_lock.acquire()
             self._die = True
+            self._die_user_requested = user_requested
             self._die_lock.release()
+            if user_requested:
+                print "%s (%s/%s): %s - kill requested by parent job" % (self.par_job.uid,
+                        self.par_job.package, self._target_dict['arch'], self.jobid)
 
 


Index: PackageJob.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/server/PackageJob.py,v
retrieving revision 1.31.2.4
retrieving revision 1.31.2.5
diff -u -r1.31.2.4 -r1.31.2.5
--- PackageJob.py	14 Nov 2005 19:14:25 -0000	1.31.2.4
+++ PackageJob.py	15 Nov 2005 05:22:04 -0000	1.31.2.5
@@ -460,7 +460,7 @@
         """ Removes an arch job when its builder is no longer responding """
         self._archjobs_lock.acquire()
         jobarch = job.arch()
-        print "%s (%s/%s): Builder disappeared.  Requeuing arch..." % (self.uid, self.package, jobarch)
+        log("%s (%s/%s): Builder disappeared.  Requeuing arch..." % (self.uid, self.package, jobarch))
         self.archjobs[jobarch] = None
         self._request_one_arch_job(jobarch, True)
         self._archjobs_lock.release()
@@ -474,6 +474,7 @@
         self._killer = username
         self._die = True
 
+        log("%s (%s): Job kill request from %s" % (self.uid, self.package, username))
         self._archjobs_lock.acquire()
         if self.curstage == 'waiting':
             # In 'waiting' stage, we have no controller thread.  So to get
@@ -490,9 +491,10 @@
         self.result = 'killed'
         self._set_cur_stage('finished', resultstring)
         self.email_result(self.username, resultstring)
+        log(resultstring)
 
         # Kill any building jobs
-        self._kill_all_archjobs()
+        self._kill_all_archjobs(True)
 
         # Wake us up if the Controller thread is still running
         if not self._event.isSet():
@@ -501,11 +503,11 @@
         self.endtime = time.time()
         self.bm.notify_job_done(self)
 
-    def _kill_all_archjobs(self):
+    def _kill_all_archjobs(self, user_requested=False):
         self._archjobs_lock.acquire()
         for job in self.archjobs.values():
             if job:
-                job.die()
+                job.die(user_requested)
         self.archjobs = {}
         self._archjobs_lock.release()
 
@@ -546,7 +548,7 @@
             # build when one archjob fails
             if self._target_cfg.testing() == False:
                 # Kill remaining jobs on other arches
-                self._kill_all_archjobs()
+                self._kill_all_archjobs(False)
                 self._stage_failed(e.msg)
 
     def _stage_building(self):




More information about the fedora-extras-commits mailing list