aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2020-12-04 17:58:27 +0100
committerThomas White <taw@physics.org>2020-12-04 17:58:27 +0100
commitfa6dd82e86109d6d071ffc8affe4c13c27a2b160 (patch)
treea748d6dd90ce34aef2181c7d57f2796315bec69f /src
parent71d5407524ee7451fc8b6b6cc014e5d5539b3694 (diff)
SLURM: Cancel merging jobs properly
Diffstat (limited to 'src')
-rw-r--r--src/gui_backend_slurm.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/gui_backend_slurm.c b/src/gui_backend_slurm.c
index f6f2e8e2..d572a9b4 100644
--- a/src/gui_backend_slurm.c
+++ b/src/gui_backend_slurm.c
@@ -177,10 +177,17 @@ static void cancel_task(void *job_priv)
{
int i;
struct slurm_job *job = job_priv;
- for ( i=0; i<job->n_blocks; i++) {
- if ( job->job_ids[i] == 0 ) continue;
- STATUS("Stopping SLURM job %i\n", job->job_ids[i]);
- if ( slurm_kill_job(job->job_ids[i], SIGINT, 0) ) {
+ if ( job->type == SLURM_JOB_INDEXING ) {
+ for ( i=0; i<job->n_blocks; i++) {
+ if ( job->job_ids[i] == 0 ) continue;
+ STATUS("Stopping SLURM job %i\n", job->job_ids[i]);
+ if ( slurm_kill_job(job->job_ids[i], SIGINT, 0) ) {
+ ERROR("Couldn't stop job: %s\n",
+ slurm_strerror(slurm_get_errno()));
+ }
+ }
+ } else {
+ if ( slurm_kill_job(job->job_id, SIGINT, 0) ) {
ERROR("Couldn't stop job: %s\n",
slurm_strerror(slurm_get_errno()));
}