From 9a63cda7f2f3634988b6fb4dfc1c26f7b99b616e Mon Sep 17 00:00:00 2001 From: Moe Jette <jette1@llnl.gov> Date: Tue, 6 Apr 2010 21:31:58 +0000 Subject: [PATCH] minor correction in job step allocation logic when a node in job goes DOWN or gets configured out --- src/slurmctld/step_mgr.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/slurmctld/step_mgr.c b/src/slurmctld/step_mgr.c index 82f29f0f8ae..5112659b2af 100644 --- a/src/slurmctld/step_mgr.c +++ b/src/slurmctld/step_mgr.c @@ -623,11 +623,15 @@ _pick_step_nodes (struct job_record *job_ptr, } if (step_spec->mem_per_cpu && _is_mem_resv()) { - int node_inx = 0, usable_mem; - for (i=bit_ffs(job_resrcs_ptr->node_bitmap); - i<node_record_count; i++) { + int node_inx = -1, first_bit, last_bit, usable_mem; + first_bit = bit_ffs(job_resrcs_ptr->node_bitmap); + last_bit = bit_fls(job_resrcs_ptr->node_bitmap); + for (i=first_bit; i<=last_bit; i++) { if (!bit_test(job_resrcs_ptr->node_bitmap, i)) continue; + node_inx++; + if (!bit_test(nodes_avail, i)) + continue; /* node now DOWN */ usable_mem = job_resrcs_ptr-> memory_allocated[node_inx] - job_resrcs_ptr->memory_used[node_inx]; @@ -650,8 +654,6 @@ _pick_step_nodes (struct job_record *job_ptr, job_resrcs_ptr-> cpus[node_inx]); } - if (++node_inx >= job_resrcs_ptr->nhosts) - break; } } -- GitLab