Unverified Commit cde75758 authored by mvdbeek's avatar mvdbeek
Browse files

Don't call job_runner.stop_job on jobs in new state

These aren't submitted yet, no point in doing that.
Fixes
https://sentry.galaxyproject.org/share/issue/ea06518238f1409eb22a8f502f9db557/:
```
AssertionError: External job id is None
  File "galaxy/jobs/runners/drmaa.py", line 375, in stop_job
    assert ext_id not in (None, "None"), "External job id is None"
```
parent ed81681f
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -1260,6 +1260,7 @@ class DefaultJobDispatcher:
            runner_name = job_runner_name.split(":", 1)[0]
            log.debug(f"Stopping job {job_wrapper.get_id_tag()} in {runner_name} runner")
            try:
                if job.state != model.Job.states.NEW:
                    self.job_runners[runner_name].stop_job(job_wrapper)
            except KeyError:
                log.error(f"stop(): ({job_wrapper.get_id_tag()}) Invalid job runner: {runner_name}")
+2 −1
Original line number Diff line number Diff line
@@ -581,7 +581,8 @@ class BaseJobRunner:
            log.exception("Caught exception in runner state handler")

    def fail_job(self, job_state: "JobState", exception=False, message="Job failed", full_status=None):
        if getattr(job_state, "stop_job", True):
        job = job_state.job_wrapper.get_job()
        if getattr(job_state, "stop_job", True) and job.state != model.Job.states.NEW:
            self.stop_job(job_state.job_wrapper)
        job_state.job_wrapper.reclaim_ownership()
        self._handle_runner_state("failure", job_state)
+2 −1
Original line number Diff line number Diff line
@@ -418,7 +418,8 @@ class AWSBatchJobRunner(AsynchronousJobRunner):
            self.monitor_queue.put(ajs)

    def fail_job(self, job_state, exception=False):
        if getattr(job_state, "stop_job", True):
        job = job_state.job_wrapper.get_job()
        if getattr(job_state, "stop_job", True) and job.state != model.Job.states.NEW:
            self.stop_job(job_state.job_wrapper)
        job_state.job_wrapper.reclaim_ownership()
        self._handle_runner_state("failure", job_state)