Skip to content

Commit d839750

Browse files
authored
Merge pull request #429 from bernt-matthias/deactivate_job
Better cleanup after external DRMAA and condor jobs
2 parents afa91d2 + b1bb1b1 commit d839750

2 files changed

Lines changed: 12 additions & 4 deletions

File tree

pulsar/managers/queued_condor.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,6 @@
1515
log = getLogger(__name__)
1616

1717

18-
# TODO:
19-
# - user_log_sizes and state_cache never expire
20-
# elements never expire. This is a small memory
21-
# leak that should be fixed.
2218
class CondorQueueManager(ExternalBaseManager):
2319
"""
2420
Job manager backend that plugs into Condor.
@@ -92,3 +88,9 @@ def __get_state_from_log(self, external_id, log_file):
9288
self.user_log_sizes[external_id] = log_size
9389
self.state_cache[external_id] = state
9490
return state
91+
92+
def _deactivate_job(self, job_id: str) -> None:
93+
external_id = self._external_id(job_id)
94+
self.user_log_sizes.pop(external_id, None)
95+
self.state_cache.pop(external_id, None)
96+
super()._deactivate_job(job_id)

pulsar/managers/queued_external_drmaa.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,12 @@ def __sudo(self, *cmds, **kwargs):
9090
assert p.returncode == 0, "{}, {}".format(stdout, stderr)
9191
return stdout
9292

93+
def _deactivate_job(self, job_id: str) -> None:
94+
external_id = self._external_id(job_id)
95+
del self.user_map[external_id]
96+
self.reclaimed.pop(job_id, None)
97+
super()._deactivate_job(job_id)
98+
9399

94100
def _handle_default(value, script_name):
95101
""" There are two potential variants of these scripts,

0 commit comments

Comments
 (0)