diff --git a/snakemake_executor_plugin_slurm/__init__.py b/snakemake_executor_plugin_slurm/__init__.py index 5b25540..d6c8974 100644 --- a/snakemake_executor_plugin_slurm/__init__.py +++ b/snakemake_executor_plugin_slurm/__init__.py @@ -137,7 +137,7 @@ def run_job(self, job: JobExecutorInterface): f"sbatch " f"--parsable " f"--job-name {self.run_uuid} " - f"--output {slurm_logfile} " + f"--output '{slurm_logfile}' " f"--export=ALL " f"--comment {comment_str}" ) @@ -408,6 +408,14 @@ def cancel_jobs(self, active_jobs: List[SubmittedJobInfo]): ) except subprocess.TimeoutExpired: self.logger.warning("Unable to cancel jobs within a minute.") + except subprocess.CalledProcessError as e: + msg = e.stderr.strip() + if msg: + msg = f": {msg}" + raise WorkflowError( + "Unable to cancel jobs with scancel " + f"(exit code {e.returncode}){msg}" + ) from e async def job_stati(self, command): """Obtain SLURM job status of all submitted jobs with sacct