diff --git a/src/slurmctld/job_mgr.c b/src/slurmctld/job_mgr.c index 8c55dae949b4ced713297162a4506948c687436e..ab58bb46a74c359fa097851ad905beb0d7a9cf51 100644 --- a/src/slurmctld/job_mgr.c +++ b/src/slurmctld/job_mgr.c @@ -7190,7 +7190,10 @@ int update_job(job_desc_msg_t * job_specs, uid_t uid) error_code = ESLURM_DISABLED; else if (job_ptr->priority == job_specs->priority) { debug("update_job: setting priority to current value"); - if ((job_ptr->priority == 0) && authorized) { + if ((job_ptr->priority == 0) && + (job_ptr->user_id != uid) && authorized) { + /* Authorized user can change from user hold + * to admin hold or admin hold to user hold */ if (job_specs->alloc_sid == ALLOC_SID_USER_HOLD) job_ptr->state_reason = WAIT_HELD_USER; else