extras-buildsys/builder builder.py,1.19,1.20

Daniel Williams (dcbw) fedora-extras-commits at redhat.com
Mon Jul 18 21:11:28 UTC 2005


Author: dcbw

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

Modified Files:
	builder.py 
Log Message:
2005-07-18  Dan Williams <dcbw at redhat.com>

   * builder/builder.py
        - Don't start a cleanup over top of another cleanup
            when we're told to kill the job

    * server/BuildMaster.py
      server/Repo.py
        - Clear repo additions array after each repo update, fixes problem
            where jobs would switch back from 'needsign' -> 'repodone' after
            the job was already complete




Index: builder.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/builder/builder.py,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- builder.py	18 Jul 2005 17:24:28 -0000	1.19
+++ builder.py	18 Jul 2005 21:11:26 -0000	1.20
@@ -103,16 +103,25 @@
             self._srpm_path = os.path.join(config_opts['builder_work_dir'], self._uniqid, "source", srpm_filename)
 
     def die(self, sig=15):
-        if self._pobj and self._pobj.pid:  # Can't kill the package download from build server
+        # Do nothing if we've already been killed
+        if self._done_status == 'killed':
+            return
+
+        self.log("Killing build process...\n")
+        # Don't try to kill a running cleanup process
+        if self._status != 'cleanup' and self._pobj and self._pobj.pid:
             try:
-                self.log("Killing build process...\n")
                 os.kill(self._pobj.pid, sig)
             except OSError, e:
                 self.log("Couldn't kill process %d: %s\n" % (self._pobj.pid, e))
 
         self.log("Killed.\n");
         self._done_status = 'killed'
-        self._cleanup()
+
+        # Don't start cleanup over top of an existing cleanup process
+        if self._status != 'cleanup':
+            self._cleanup()
+
         return True
 
     def log(self, string):
@@ -344,7 +353,6 @@
         elif self._status == 'cleanup':
             exit_status = self._pobj.poll()
             if exit_status >= 0:
-                print "mock clean done"
                 # We ignore mock errors when cleaning the buildroot
                 self._status = self._done_status
                 # FIXME: remove the last dir off the end of 'rootdir' here to get




More information about the fedora-extras-commits mailing list