extras-buildsys/server ArchJob.py, 1.19, 1.20 PackageJob.py, 1.35, 1.36

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


Author: dcbw

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

Modified Files:
	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.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- ArchJob.py	13 Nov 2005 02:27:39 -0000	1.19
+++ ArchJob.py	15 Nov 2005 05:20:54 -0000	1.20
@@ -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.35
retrieving revision 1.36
diff -u -r1.35 -r1.36
--- PackageJob.py	14 Nov 2005 04:56:02 -0000	1.35
+++ PackageJob.py	15 Nov 2005 05:20:54 -0000	1.36
@@ -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