extras-buildsys/server Builder.py,1.20,1.21

Daniel Williams (dcbw) fedora-extras-commits at redhat.com
Wed Oct 19 13:46:46 UTC 2005


Author: dcbw

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

Modified Files:
	Builder.py 
Log Message:
2005-10-19  Dan Williams  <dcbw at redhat.com>

    * server/builder.py
        - Make the server's builder-tracking thread more resistant
            to builder errors




Index: Builder.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/server/Builder.py,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- Builder.py	14 Sep 2005 15:41:59 -0000	1.20
+++ Builder.py	19 Oct 2005 13:46:43 -0000	1.21
@@ -86,8 +86,10 @@
         num_slots = self._num_slots
         try:
             num_slots = self._server.num_slots()
-        except (socket.error, socket.timeout, OpenSSL.SSL.SysCallError, xmlrpclib.ProtocolError):
+        except (socket.error, socket.timeout, OpenSSL.SSL.SysCallError, OpenSSL.SSL.Error, xmlrpclib.ProtocolError):
             pass
+        except xmlrpclib.Fault, e:
+            print "Builder Error (%s) in _get_num_slots(): builder replied '%s'" % (self.address, e)
         return num_slots
 
     def _building_jobs(self):
@@ -97,7 +99,10 @@
             self._unavail_count = 0
             self._alive = True
             self._free_slots = free_slots
-        except (socket.error, socket.timeout, OpenSSL.SSL.SysCallError, xmlrpclib.ProtocolError):
+        except (socket.error, socket.timeout, OpenSSL.SSL.SysCallError, OpenSSL.SSL.Error, xmlrpclib.ProtocolError):
+            self._unavail_count = self._unavail_count + 1
+        except xmlrpclib.Fault, e:
+            print "Builder Error (%s) in _building_jobs(): builder replied '%s'" % (self.address, e)
             self._unavail_count = self._unavail_count + 1
         return jobs
 
@@ -108,6 +113,9 @@
             alive = True
         except (socket.error, socket.timeout, OpenSSL.SSL.SysCallError, OpenSSL.SSL.Error, xmlrpclib.ProtocolError):
             alive = False
+        except xmlrpclib.Fault, e:
+            print "Builder Error (%s) in _ping_builder(): builder replied '%s'" % (self.address, e)
+            alive = False
         return (alive, target_list)
 
     def _match_target_dict(self, td1, td2):
@@ -154,10 +162,10 @@
         try:
             # Builder will return jobid of 0 if it can't start the job for some reason
             jobid = self._server.start_new_job(target_dict, srpm_url)
-        except (socket.error, socket.timeout, OpenSSL.SSL.SysCallError, xmlrpclib.ProtocolError):
+        except (socket.error, socket.timeout, OpenSSL.SSL.SysCallError, OpenSSL.SSL.Error, xmlrpclib.ProtocolError):
             jobid = 0
         except xmlrpclib.Fault, e:
-            print "Builder Error (%s): builder replied '%s'" % (self.address, e)
+            print "Builder Error (%s) in start_job(): builder replied '%s'" % (self.address, e)
             time.sleep(0.5)
             jobid = 0
 
@@ -208,7 +216,9 @@
         status = None
         try:
             status = self._server.job_status(jobid)
-        except (socket.error, socket.timeout, OpenSSL.SSL.SysCallError, xmlrpclib.ProtocolError):
+        except (socket.error, socket.timeout, OpenSSL.SSL.SysCallError, OpenSSL.SSL.Error):
+            pass
+        except (xmlrpclib.Fault, xmlrpclib.ProtocolError):
             pass
         return status
 




More information about the scm-commits mailing list