@@ -470,11 +470,6 @@ async def check_active_jobs(
470
470
snakemake_container_exit_code is not None
471
471
and snakemake_container_exit_code != 0
472
472
):
473
- msg = (
474
- "For details, please issue:\n "
475
- f"kubectl describe job { j .external_jobid } "
476
- )
477
-
478
473
if pod_name is not None :
479
474
assert snakemake_container is not None
480
475
kube_log = self .log_path / f"{ j .external_jobid } .log"
@@ -493,17 +488,26 @@ def read_log(
493
488
kube_log_content = self ._kubernetes_retry (read_log )
494
489
print (kube_log_content , file = f )
495
490
aux_logs = [str (kube_log )]
491
+ msg = ""
496
492
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
+ )
497
500
aux_logs = []
498
501
499
- self .logger .error (f"Job { j .external_jobid } failed. { msg } " )
502
+ self .logger .error (f"Job { j .external_jobid } failed.{ msg } " )
500
503
self .report_job_error (j , msg = msg , aux_logs = aux_logs )
501
504
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
+ )
505
510
)
506
- )
507
511
elif (res .status .succeeded and res .status .succeeded >= 1 ) or (
508
512
snakemake_container_exit_code == 0
509
513
):
0 commit comments