Skip to content

Commit

Permalink
fix job_timeout_test
Browse files Browse the repository at this point in the history
  • Loading branch information
robnagler committed Jan 3, 2024
1 parent d6cde73 commit 667340a
Showing 1 changed file with 13 additions and 4 deletions.
17 changes: 13 additions & 4 deletions sirepo/job_supervisor.py
Original file line number Diff line number Diff line change
Expand Up @@ -1067,20 +1067,29 @@ def __init__(self, *args, **kwargs):
pkdlog("{} runDir={}", self, self.msg.get("runDir"))

def destroy(self, cancel_task=True, internal_error=None):
"""Idempotently destroy op
Ops can be destroyed multiple times. The first
`internal_error` is "closest to the source" so it won't be
overwritten by subsequent calls unless it is `None`.
Args:
cancel_task (bool): cancel `self.task` if True [default: True]
internal_error (str): saved for logging in `destroy_op` [default: None]
"""
if x := self.pkdel("run_dir_slot"):
x.free()
if (x := self.pkdel("task")) and cancel_task:
x.cancel()
for x in "run_callback", "timer":
if y := self.pkdel(x):
tornado.ioloop.IOLoop.current().remove_timeout(y)
# Ops can be destroyed multiple times
# The first error is "closest to the source" so don't overwrite it
if internal_error and not self.internal_error:
self.internal_error = internal_error
self._supervisor.destroy_op(self)
self.driver.destroy_op(self)
self.driver = None
if "driver" in self:
self.driver.destroy_op(self)

def make_lib_dir_symlink(self):
self.driver.make_lib_dir_symlink(self)
Expand Down

0 comments on commit 667340a

Please sign in to comment.