From b1223e217a35ff39e330d76f762e45d3a86866ef Mon Sep 17 00:00:00 2001 From: Morris Jette <jette@schedmd.com> Date: Tue, 6 Jun 2017 09:46:56 -0600 Subject: [PATCH] Disable pack jobs with select/serial plugin --- doc/html/heterogeneous_jobs.shtml | 4 +++- src/slurmctld/job_mgr.c | 5 +++-- src/slurmctld/job_scheduler.c | 12 +++++++----- src/slurmctld/proc_req.c | 19 +++++++++++++++++-- 4 files changed, 30 insertions(+), 10 deletions(-) diff --git a/doc/html/heterogeneous_jobs.shtml b/doc/html/heterogeneous_jobs.shtml index 99cc61f61eb..fcba8a11ad2 100644 --- a/doc/html/heterogeneous_jobs.shtml +++ b/doc/html/heterogeneous_jobs.shtml @@ -236,8 +236,10 @@ components of a heterogeneous job.</p> <p>Job arrays of heterogeneous jobs are not supported.</p> +<p>Heterogeneous jobs are not supported with Slurm's select/serial plugin.</p> + <p class="footer"><a href="#top">top</a></p> -<p style="text-align:center;">Last modified 5 June 2017</p> +<p style="text-align:center;">Last modified 6 June 2017</p> <!--#include virtual="footer.txt"--> diff --git a/src/slurmctld/job_mgr.c b/src/slurmctld/job_mgr.c index 1bfff5b90f8..4f6009aed34 100644 --- a/src/slurmctld/job_mgr.c +++ b/src/slurmctld/job_mgr.c @@ -7870,8 +7870,9 @@ void job_time_limit(void) prolog = job_ptr->details->prolog_running; if ((prolog == 0) && IS_JOB_CONFIGURING(job_ptr) && test_job_nodes_ready(job_ptr)) { - info("%s: Configuration for job %u is complete", - __func__, job_ptr->job_id); + char job_id_buf[JBUFSIZ]; + info("%s: Configuration for %s complete", __func__, + jobid2fmt(job_ptr, job_id_buf,sizeof(job_id_buf))); job_config_fini(job_ptr); if (job_ptr->bit_flags & NODE_REBOOT) { job_ptr->bit_flags &= (~NODE_REBOOT); diff --git a/src/slurmctld/job_scheduler.c b/src/slurmctld/job_scheduler.c index 3f9e3ebb87f..4a3608605e7 100644 --- a/src/slurmctld/job_scheduler.c +++ b/src/slurmctld/job_scheduler.c @@ -738,9 +738,10 @@ extern bool replace_batch_job(slurm_msg_t * msg, void *fini_job, bool locked) if (!job_ptr) break; - if ((job_ptr == fini_job_ptr) || - (job_ptr->priority == 0) || - (job_ptr->details == NULL) || + if ((job_ptr == fini_job_ptr) || + (job_ptr->priority == 0) || + (job_ptr->pack_job_id != 0) || + (job_ptr->details == NULL) || !avail_front_end(job_ptr)) continue; @@ -4035,8 +4036,9 @@ extern void prolog_running_decr(struct job_record *job_ptr) return; if (IS_JOB_CONFIGURING(job_ptr) && test_job_nodes_ready(job_ptr)) { - info("%s: Configuration for job %u is complete", - __func__, job_ptr->job_id); + char job_id_buf[JBUFSIZ]; + info("%s: Configuration for %s is complete", __func__, + jobid2fmt(job_ptr, job_id_buf, sizeof(job_id_buf))); job_config_fini(job_ptr); if (job_ptr->batch_flag && (IS_JOB_RUNNING(job_ptr) || IS_JOB_SUSPENDED(job_ptr))) { diff --git a/src/slurmctld/proc_req.c b/src/slurmctld/proc_req.c index 4e0045aa461..28051bde55d 100644 --- a/src/slurmctld/proc_req.c +++ b/src/slurmctld/proc_req.c @@ -1166,6 +1166,7 @@ static void _trigger_backfill(void) /* _slurm_rpc_allocate_pack: process RPC to allocate a pack job resources */ static void _slurm_rpc_allocate_pack(slurm_msg_t * msg) { + static int select_serial = -1; static int active_rpc_cnt = 0; int error_code = SLURM_SUCCESS; DEF_TIMERS; @@ -1192,7 +1193,13 @@ static void _slurm_rpc_allocate_pack(slurm_msg_t * msg) START_TIMER; - if (slurmctld_config.submissions_disabled) { + if (select_serial == -1) { + if (xstrcmp(slurmctld_conf.select_type, "select/serial")) + select_serial = 0; + else + select_serial = 1; + } + if (slurmctld_config.submissions_disabled || (select_serial == 1)) { info("Submissions disabled on system"); error_code = ESLURM_SUBMISSIONS_DISABLED; goto send_msg; @@ -3816,6 +3823,7 @@ send_msg: /* _slurm_rpc_submit_batch_pack_job - process RPC to submit a batch pack job */ static void _slurm_rpc_submit_batch_pack_job(slurm_msg_t *msg) { + static int select_serial = -1; static int active_rpc_cnt = 0, alloc_only = 0; ListIterator iter; int error_code = SLURM_SUCCESS; @@ -3849,7 +3857,13 @@ static void _slurm_rpc_submit_batch_pack_job(slurm_msg_t *msg) uid); error_code = SLURM_ERROR; } - if (slurmctld_config.submissions_disabled) { + if (select_serial == -1) { + if (xstrcmp(slurmctld_conf.select_type, "select/serial")) + select_serial = 0; + else + select_serial = 1; + } + if (slurmctld_config.submissions_disabled || (select_serial == 1)) { info("Submissions disabled on system"); error_code = ESLURM_SUBMISSIONS_DISABLED; } @@ -3929,6 +3943,7 @@ static void _slurm_rpc_submit_batch_pack_job(slurm_msg_t *msg) jobid_hostset = hostset_create(tmp_str); job_ptr->pack_job_id = pack_job_id; job_ptr->pack_job_offset = pack_job_offset++; + job_ptr->batch_flag = 1; list_append(submit_job_list, job_ptr); } -- GitLab