self.actor_ref = TellableActorRef(self)
self._later = self.actor_ref.tell_proxy()
- def kill_self(self, act):
+ def kill_self(self, e, act):
lg = getattr(self, "_logger", logging)
+ lg.critical("Watchdog exception", exc_info=e)
lg.critical("Actor %s watchdog ping time out, killing Node Manager", act)
os.kill(os.getpid(), signal.SIGKILL)
self._later.run()
def run(self):
- for a in self.actors:
- try:
+ a = None
+ try:
+ for a in self.actors:
a.ping().get(self.timeout)
- except pykka.ActorDeadError:
- pass
- except pykka.Timeout:
- self.kill_self(a)
- return
-
- time.sleep(20)
- self._later.run()
+ time.sleep(20)
+ self._later.run()
+ except Exception as e:
+ self.kill_self(e, a)