[copr] skvidal-backend: when we startup make sure our destdir exists when a worker dies unexpectedly - make sure we kill it and get rid of it (9da44f0)

skvidal at fedoraproject.org skvidal at fedoraproject.org
Thu Dec 6 07:18:55 UTC 2012


Repository : http://git.fedorahosted.org/cgit/copr.git

On branch  : skvidal-backend

>---------------------------------------------------------------

commit 9da44f0b3c2417e53c9eadf9f44d17d3e5f272bf
Author: Seth Vidal <skvidal at fedoraproject.org>
Date:   Thu Dec 6 02:16:25 2012 -0500

    when we startup make sure our  destdir exists
    when a worker dies unexpectedly - make sure we kill it and get rid of it


>---------------------------------------------------------------

 copr-be.py |   11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/copr-be.py b/copr-be.py
index 27ceb03..e5128d9 100644
--- a/copr-be.py
+++ b/copr-be.py
@@ -37,6 +37,9 @@ class CoprBackend(object):
         if not os.path.exists(logdir):
             os.makedirs(logdir, mode=0750)
 
+        if not os.path.exists(self.opts.destdir):
+            os.makedirs(self.opts.destdir, mode=0755)
+
         # setup a log file to write to
         self.logfile = self.opts.logfile
         self.log("Starting up new copr-be instance")
@@ -106,8 +109,6 @@ class CoprBackend(object):
         except requests.RequestException, e:
             self.log('Error retrieving jobs from %s: %s' % (self.opts.frontend_url, e))
         else:
-            
-            
             r_json = json.loads(r.content) # using old requests on el6 :(
             if 'builds' in r_json:
                 self.log('%s jobs returned' % len(r_json['builds']))
@@ -131,7 +132,7 @@ class CoprBackend(object):
                 if n not in self.added_jobs:
                     self.jobs.put(f)
                     self.added_jobs.append(n)
-                    self.log('adding %s' % n)
+                    self.log('adding to work queue id %s' % n)
             
             if self.jobs.qsize():
                 self.log("# jobs in queue: %s" % self.jobs.qsize())
@@ -159,7 +160,9 @@ class CoprBackend(object):
                     self.log('Worker %d died unexpectedly' % w.worker_num)
                     if self.opts.exit_on_worker:
                         raise errors.CoprBackendError, "Worker died unexpectedly, exiting"
-                    
+                    else:
+                        self.workers.remove(w) # it is not working anymore
+                        w.terminate() # kill it with a fire
 
             time.sleep(self.opts.sleeptime)
 



More information about the copr-devel mailing list