From 1284f2f2a9728560789a017356593ee58860418c Mon Sep 17 00:00:00 2001
From: Moe Jette <jette1@llnl.gov>
Date: Fri, 4 Jan 2008 00:47:07 +0000
Subject: [PATCH] move AND of will-run bitmap with available nodes to
 sched/wiki2 from select/linear

---
 src/plugins/sched/wiki2/job_will_run.c    | 10 ++++++----
 src/plugins/select/linear/select_linear.c |  1 -
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/plugins/sched/wiki2/job_will_run.c b/src/plugins/sched/wiki2/job_will_run.c
index e4d401aa789..502f76a4ee9 100644
--- a/src/plugins/sched/wiki2/job_will_run.c
+++ b/src/plugins/sched/wiki2/job_will_run.c
@@ -140,8 +140,10 @@ static char *	_will_run_test(uint32_t jobid, char *node_list,
 		return NULL;
 	}
 
-	if ((node_list == NULL) ||
-	    (node_name2bitmap(node_list, false, &avail_bitmap) != 0)) {
+	if ((node_list == NULL) || (node_list[0] == '\0')) {
+		/* assume all nodes available to job for testing */
+		avail_bitmap = bit_copy(avail_node_bitmap);
+	} else if (node_name2bitmap(node_list, false, &avail_bitmap) != 0) {
 		*err_code = -700;
 		*err_msg = "Invalid AVAIL_NODES value";
 		error("wiki: Attempt to set invalid available node "
@@ -149,8 +151,8 @@ static char *	_will_run_test(uint32_t jobid, char *node_list,
 			jobid, node_list);
 		return NULL;
 	} else {
-		/* assume all nodes available to job for testing */
-		avail_bitmap = bit_copy(avail_node_bitmap);
+		/* Only consider nodes that are not DOWN or DRAINED */
+		bit_and(avail_bitmap, avail_node_bitmap);
 	}
 
 	min_nodes = MAX(job_ptr->details->min_nodes, part_ptr->min_nodes);
diff --git a/src/plugins/select/linear/select_linear.c b/src/plugins/select/linear/select_linear.c
index 05a7d8c66e1..be95f078446 100644
--- a/src/plugins/select/linear/select_linear.c
+++ b/src/plugins/select/linear/select_linear.c
@@ -1275,7 +1275,6 @@ static int _will_run_test(struct job_record *job_ptr, bitstr_t *bitmap,
 	bitstr_t *orig_map;
 	int i, rc = SLURM_ERROR;
 
-	bit_and(bitmap, avail_node_bitmap);
 	orig_map = bit_copy(bitmap);
 
 	/* Try to run with currently available nodes */
-- 
GitLab