|
64 | 64 | from gridmap.runner import _heart_beat |
65 | 65 |
|
66 | 66 | if DRMAA_PRESENT: |
67 | | - from drmaa import InvalidJobException, JobControlAction, Session |
| 67 | + from drmaa import (InvalidJobException, JobControlAction, |
| 68 | + JOB_IDS_SESSION_ALL, Session) |
68 | 69 |
|
69 | 70 | # Python 2.x backward compatibility |
70 | 71 | if sys.version_info < (3, 0): |
@@ -303,17 +304,14 @@ def __exit__(self, exc_type, exc_value, exc_tb): |
303 | 304 | if exc_type is not None: |
304 | 305 | self.logger.info('Encountered %s, so killing all jobs.', |
305 | 306 | 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) |
317 | 315 |
|
318 | 316 | def check(self, session_id, jobs): |
319 | 317 | """ |
|
0 commit comments