Skip to content

Commit 6e02b85

Browse files
fix: do not delete job if log file cannot be retrieved
1 parent f41b624 commit 6e02b85

File tree

1 file changed

+14
-10
lines changed

1 file changed

+14
-10
lines changed

snakemake_executor_plugin_kubernetes/__init__.py

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -470,11 +470,6 @@ async def check_active_jobs(
470470
snakemake_container_exit_code is not None
471471
and snakemake_container_exit_code != 0
472472
):
473-
msg = (
474-
"For details, please issue:\n"
475-
f"kubectl describe job {j.external_jobid}"
476-
)
477-
478473
if pod_name is not None:
479474
assert snakemake_container is not None
480475
kube_log = self.log_path / f"{j.external_jobid}.log"
@@ -493,17 +488,26 @@ def read_log(
493488
kube_log_content = self._kubernetes_retry(read_log)
494489
print(kube_log_content, file=f)
495490
aux_logs = [str(kube_log)]
491+
msg = ""
496492
else:
493+
msg = (
494+
" For details, please issue:\n"
495+
f"kubectl describe job {j.external_jobid}. "
496+
"Further, make sure to clean up the failed job "
497+
"manually in case it is not deleted automatically: "
498+
"kubectl delete job {j.external_jobid}."
499+
)
497500
aux_logs = []
498501

499-
self.logger.error(f"Job {j.external_jobid} failed. {msg}")
502+
self.logger.error(f"Job {j.external_jobid} failed.{msg}")
500503
self.report_job_error(j, msg=msg, aux_logs=aux_logs)
501504

502-
self._kubernetes_retry(
503-
lambda j=j: self.safe_delete_job(
504-
j.external_jobid, ignore_not_found=True
505+
if pod_name is not None:
506+
self._kubernetes_retry(
507+
lambda j=j: self.safe_delete_job(
508+
j.external_jobid, ignore_not_found=True
509+
)
505510
)
506-
)
507511
elif (res.status.succeeded and res.status.succeeded >= 1) or (
508512
snakemake_container_exit_code == 0
509513
):

0 commit comments

Comments
 (0)