diff --git a/slurm/slurm.h.in b/slurm/slurm.h.in index e7088832c652abe271f436eac16ac020cd0daa1a..15776fafa5a2e9080f8e03f40569c20c51aa8822 100644 --- a/slurm/slurm.h.in +++ b/slurm/slurm.h.in @@ -2234,7 +2234,7 @@ typedef struct resv_desc_msg { char *accounts; /* names of accounts permitted to use */ char *burst_buffer; /* burst buffer resources to be included */ uint32_t *core_cnt; /* Count of cores required */ - uint32_t duration; /* duration of reservation in seconds */ + uint32_t duration; /* duration of reservation in minutes */ time_t end_time; /* end time of reservation */ char *features; /* required node features */ uint32_t flags; /* see RESERVE_FLAG_* above */ diff --git a/src/slurmctld/job_scheduler.c b/src/slurmctld/job_scheduler.c index c080e5304784ca0f1ff9d2dcd0086cb9e019b243..137b8f7bd95a1b987ba4deaaf592e355120ed508 100644 --- a/src/slurmctld/job_scheduler.c +++ b/src/slurmctld/job_scheduler.c @@ -314,6 +314,7 @@ static int _delta_tv(struct timeval *tv) */ extern List build_job_queue(bool clear_start, bool backfill) { + static time_t last_log_time = 0; List job_queue; ListIterator job_iterator, part_iterator; struct job_record *job_ptr = NULL, *new_job_ptr; @@ -322,6 +323,7 @@ extern List build_job_queue(bool clear_start, bool backfill) struct timeval start_tv = {0, 0}; int tested_jobs = 0; char jobid_buf[32]; + int job_part_pairs = 0; (void) _delta_tv(&start_tv); job_queue = list_create(_job_queue_rec_del); @@ -367,10 +369,15 @@ extern List build_job_queue(bool clear_start, bool backfill) while ((job_ptr = (struct job_record *) list_next(job_iterator))) { if (((tested_jobs % 100) == 0) && (_delta_tv(&start_tv) >= build_queue_timeout)) { - info("build_job_queue has been running for %d usec, " - "exiting with %d of %d jobs tested", - build_queue_timeout, tested_jobs, - list_count(job_list)); + time_t now = time(NULL); + if (difftime(now, last_log_time) > 600) { + /* Log at most once every 10 minutes */ + info( +"%s has run for %d usec, exiting with %d of %d jobs tested, %d job-partition pairs added", + __func__, build_queue_timeout, tested_jobs, + list_count(job_list), job_part_pairs); + last_log_time = now; + } break; } tested_jobs++; @@ -397,6 +404,7 @@ extern List build_job_queue(bool clear_start, bool backfill) inx++; if (reason != WAIT_NO_REASON) continue; + job_part_pairs++; if (job_ptr->priority_array) { _job_queue_append(job_queue, job_ptr, part_ptr, @@ -425,6 +433,7 @@ extern List build_job_queue(bool clear_start, bool backfill) } if (!_job_runnable_test2(job_ptr, backfill)) continue; + job_part_pairs++; _job_queue_append(job_queue, job_ptr, job_ptr->part_ptr, job_ptr->priority); } diff --git a/src/slurmctld/proc_req.c b/src/slurmctld/proc_req.c index d0b5083e12777cf6a5f5c2e8e83cc0121028887c..1953c6253ff2a70781cc031e3cd3fea66f8abc97 100644 --- a/src/slurmctld/proc_req.c +++ b/src/slurmctld/proc_req.c @@ -3971,10 +3971,14 @@ static void _slurm_rpc_resv_delete(slurm_msg_t * msg) uid_t uid = g_slurm_auth_get_uid(msg->auth_cred, NULL); START_TIMER; - debug2("Processing RPC: REQUEST_DELETE_RESERVTION from uid=%d", uid); + debug2("Processing RPC: REQUEST_DELETE_RESERVATION from uid=%d", uid); if (!validate_operator(uid)) { error_code = ESLURM_USER_ID_MISSING; - error("Security violation, DELETE_RESERVTION RPC from uid=%d", + error("Security violation, DELETE_RESERVATION RPC from uid=%d", + uid); + } else if (!resv_desc_ptr->name) { + error_code = ESLURM_INVALID_PARTITION_NAME; + error("Invalid DELETE_RESERVATION RPC from uid=%d, name is null", uid); } diff --git a/src/slurmd/slurmstepd/mgr.c b/src/slurmd/slurmstepd/mgr.c index d3682a4c25e02bb1792f8adb62cea18ad166fd36..8b06d6d7f54bfca752f791dd235d4b782a43a617 100644 --- a/src/slurmd/slurmstepd/mgr.c +++ b/src/slurmd/slurmstepd/mgr.c @@ -1539,7 +1539,7 @@ _fork_all_tasks(stepd_step_rec_t *job, bool *io_initialized) set_oom_adj(0); /* the tasks may be killed by OOM */ if (task_g_pre_setuid(job)) { - error("Failed task affinity setup"); + error("Failed to invoke task plugins: one of task_p_pre_setuid functions returned error"); return SLURM_ERROR; } diff --git a/src/slurmd/slurmstepd/task.c b/src/slurmd/slurmstepd/task.c index 4ed5cb917809ae8d2cc3c109b5c61b2eb9dc0e6b..72a56eb5ffff78d5bbf16e47bf2ad8c57a7049b2 100644 --- a/src/slurmd/slurmstepd/task.c +++ b/src/slurmd/slurmstepd/task.c @@ -443,7 +443,7 @@ exec_task(stepd_step_rec_t *job, int i) /* task plugin hook */ if (task_g_pre_launch(job)) { - error("Failed task affinity setup"); + error("Failed to invoke task plugins: one of task_p_pre_launch functions returned error"); exit(1); } if (!job->batch && job->accel_bind_type) { @@ -459,7 +459,7 @@ exec_task(stepd_step_rec_t *job, int i) } if (spank_user_task (job, i) < 0) { - error ("Failed to invoke task plugin stack"); + error ("Failed to invoke spank plugin stack"); exit (1); }