diff --git a/src/scontrol/info_job.c b/src/scontrol/info_job.c index 52fe21ac740512176c1bb4086130aaad14b6561a..823f7012f714ecd0276efa06ba1e5793326f7b06 100644 --- a/src/scontrol/info_job.c +++ b/src/scontrol/info_job.c @@ -248,9 +248,9 @@ scontrol_get_job_state(uint32_t job_id) error_code = _scontrol_load_jobs(&job_buffer_ptr, job_id); if (error_code) { exit_code = 1; - if (quiet_flag != 1) + if (quiet_flag == -1) slurm_perror ("slurm_load_jobs error"); - return 0; + return (uint16_t) NO_VAL; } if (quiet_flag == -1) { char time_str[32]; @@ -265,7 +265,9 @@ scontrol_get_job_state(uint32_t job_id) if (job_ptr->job_id == job_id) return job_ptr->job_state; } - return 0; + if (quiet_flag == -1) + printf("Could not find job %u", job_id); + return (uint16_t) NO_VAL; } /* diff --git a/src/scontrol/update_job.c b/src/scontrol/update_job.c index 73ffd5825677217744d32659f359a09fc225f450..8c76f99c4765133deef57e14cd0c9bd5c37bd604 100644 --- a/src/scontrol/update_job.c +++ b/src/scontrol/update_job.c @@ -227,6 +227,8 @@ scontrol_hold(char *op, char *job_id_str) job_msg.priority = 0; else { uint16_t job_state = scontrol_get_job_state(job_msg.job_id); + if (job_state == (uint16_t) NO_VAL) + return SLURM_ERROR; if ((job_state & JOB_STATE_BASE) != JOB_PENDING) { slurm_seterrno(ESLURM_JOB_NOT_PENDING); return ESLURM_JOB_NOT_PENDING;