Skip to content

Commit c205ea7

Browse files
committed
Kill all jobs on exception at once instead of one at a time
1 parent 5d04559 commit c205ea7

1 file changed

Lines changed: 10 additions & 12 deletions

File tree

gridmap/job.py

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,8 @@
6464
from gridmap.runner import _heart_beat
6565

6666
if DRMAA_PRESENT:
67-
from drmaa import InvalidJobException, JobControlAction, Session
67+
from drmaa import (InvalidJobException, JobControlAction,
68+
JOB_IDS_SESSION_ALL, Session)
6869

6970
# Python 2.x backward compatibility
7071
if sys.version_info < (3, 0):
@@ -303,17 +304,14 @@ def __exit__(self, exc_type, exc_value, exc_tb):
303304
if exc_type is not None:
304305
self.logger.info('Encountered %s, so killing all jobs.',
305306
exc_type.__name__)
306-
for job in self.jobs:
307-
# Only kill jobs that are still running
308-
if job.ret == _JOB_NOT_FINISHED:
309-
with Session(self.session_id) as session:
310-
# try to kill off old job
311-
try:
312-
session.control(job.jobid,
313-
JobControlAction.TERMINATE)
314-
except InvalidJobException:
315-
self.logger.debug("Could not kill job with SGE " +
316-
"id %s", job.jobid, exc_info=True)
307+
with Session(self.session_id) as session:
308+
# try to kill off all old jobs
309+
try:
310+
session.control(JOB_IDS_SESSION_ALL,
311+
JobControlAction.TERMINATE)
312+
except InvalidJobException:
313+
self.logger.debug("Could not kill job with SGE " +
314+
"id %s", job.jobid, exc_info=True)
317315

318316
def check(self, session_id, jobs):
319317
"""

0 commit comments

Comments
 (0)