diff --git a/NEWS b/NEWS index 50bdfae88bf4bf7c86fdb65a9a2d4d074c4bf77f..0ea4ca121c6815ae34745488533379b044abeb6f 100644 --- a/NEWS +++ b/NEWS @@ -140,6 +140,8 @@ documents those changes that are of interest to users and administrators. -- Remove historical presentations and design notes. Only distribute maintained doc/html and doc/man directories. -- Remove duplicate xmalloc() in task/cgroup plugin. + -- Backfill scheduler to validate correct job partition for job submitted to + multiple partitions. * Changes in Slurm 15.08.8 ========================== diff --git a/src/plugins/sched/backfill/backfill.c b/src/plugins/sched/backfill/backfill.c index 0a4cedf719cf892bd346c4c762f14582386eb602..b467c9d09f6f22bbb3f4bee1ca49f7a6ac706bed 100644 --- a/src/plugins/sched/backfill/backfill.c +++ b/src/plugins/sched/backfill/backfill.c @@ -962,7 +962,10 @@ static int _attempt_backfill(void) } job_ptr = job_queue_rec->job_ptr; + part_ptr = job_queue_rec->part_ptr; + job_ptr->part_ptr = part_ptr; mcs_select = slurm_mcs_get_select(job_ptr); + /* With bf_continue configured, the original job could have * been cancelled and purged. Validate pointer here. */ if ((job_ptr->magic != JOB_MAGIC) || @@ -1033,7 +1036,6 @@ static int _attempt_backfill(void) orig_start_time = job_ptr->start_time; orig_time_limit = job_ptr->time_limit; - part_ptr = job_queue_rec->part_ptr; xfree(job_queue_rec); next_task: diff --git a/src/plugins/task/cgroup/task_cgroup_cpuset.c b/src/plugins/task/cgroup/task_cgroup_cpuset.c index 5d4d244a8baa964ff8b2c36ae60940ddb8f82309..7350aeb712ccd3ecfd517870f228925cd36e49cb 100644 --- a/src/plugins/task/cgroup/task_cgroup_cpuset.c +++ b/src/plugins/task/cgroup/task_cgroup_cpuset.c @@ -832,7 +832,6 @@ static int _task_cgroup_cpuset_dist_block( int spec_thread_cnt = 0; bitstr_t *spec_threads = NULL; - uint32_t *thread_idx; uint32_t core_idx; bool core_fcyclic, core_block; @@ -854,7 +853,7 @@ static int _task_cgroup_cpuset_dist_block( } if ((hwloc_compare_types(hwtype, HWLOC_OBJ_PU) == 0) && !core_block) { - thread_idx = xmalloc(ncores * sizeof(uint32_t)); + uint32_t *thread_idx = xmalloc(ncores * sizeof(uint32_t)); ntskip = taskid; npdist = job->cpus_per_task;