@@ -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