diff --git a/netrender/master.py b/netrender/master.py index 0e406bc0f69670fecf9bc7df1ab5877783a23ad3..91e610ea6e986685e17ba1323fb87f8111768314 100644 --- a/netrender/master.py +++ b/netrender/master.py @@ -61,7 +61,11 @@ class MRenderSlave(netrender.model.RenderSlave): self.last_seen = time.time() def finishedFrame(self, frame_number): - self.job_frames.remove(frame_number) + try: + self.job_frames.remove(frame_number) + except ValueError as e: + print("Internal error: Frame %i not in job frames list" % frame_number) + print(self.job_frames) if not self.job_frames: self.job = None @@ -849,7 +853,6 @@ class RenderHandler(http.server.BaseHTTPRequestHandler): class RenderMasterServer(socketserver.ThreadingMixIn, http.server.HTTPServer): def __init__(self, address, handler_class, path, subdir=True): - super().__init__(address, handler_class) self.jobs = [] self.jobs_map = {} self.slaves = [] @@ -861,6 +864,9 @@ class RenderMasterServer(socketserver.ThreadingMixIn, http.server.HTTPServer): else: self.path = path + if not os.path.exists(self.path): + os.mkdir(self.path) + self.slave_timeout = 5 # 5 mins: need a parameter for that self.balancer = netrender.balancing.Balancer() @@ -871,8 +877,7 @@ class RenderMasterServer(socketserver.ThreadingMixIn, http.server.HTTPServer): self.balancer.addPriority(netrender.balancing.NewJobPriority()) self.balancer.addPriority(netrender.balancing.MinimumTimeBetweenDispatchPriority(limit = 2)) - if not os.path.exists(self.path): - os.mkdir(self.path) + super().__init__(address, handler_class) def restore(self, jobs, slaves, balancer = None): self.jobs = jobs