From a73d347a270005542fdca4d610416df69b4d1162 Mon Sep 17 00:00:00 2001
From: Danny Auble <da@llnl.gov>
Date: Fri, 18 Jun 2010 20:27:50 +0000
Subject: [PATCH] make sure we use the correct bitmap

---
 src/slurmctld/job_mgr.c  |  6 ++++--
 src/slurmctld/node_mgr.c | 16 ++++++++++++----
 2 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/src/slurmctld/job_mgr.c b/src/slurmctld/job_mgr.c
index 300892958e9..e1edc12f41b 100644
--- a/src/slurmctld/job_mgr.c
+++ b/src/slurmctld/job_mgr.c
@@ -4575,7 +4575,8 @@ void pack_job(struct job_record *dump_job_ptr, uint16_t show_flags, Buf buffer,
 		if (!IS_JOB_COMPLETING(dump_job_ptr))
 			packstr(dump_job_ptr->nodes, buffer);
 		else {
-			nodelist = bitmap2node_name(dump_job_ptr->node_bitmap_cg);
+			nodelist =
+				bitmap2node_name(dump_job_ptr->node_bitmap_cg);
 			packstr(nodelist, buffer);
 			xfree(nodelist);
 		}
@@ -4677,7 +4678,8 @@ void pack_job(struct job_record *dump_job_ptr, uint16_t show_flags, Buf buffer,
 		if (!IS_JOB_COMPLETING(dump_job_ptr))
 			packstr(dump_job_ptr->nodes, buffer);
 		else {
-			nodelist = bitmap2node_name(dump_job_ptr->node_bitmap_cg);
+			nodelist =
+				bitmap2node_name(dump_job_ptr->node_bitmap_cg);
 			packstr(nodelist, buffer);
 			xfree(nodelist);
 		}
diff --git a/src/slurmctld/node_mgr.c b/src/slurmctld/node_mgr.c
index 8bf455551d0..a87c1f66c22 100644
--- a/src/slurmctld/node_mgr.c
+++ b/src/slurmctld/node_mgr.c
@@ -1299,7 +1299,7 @@ static int _update_node_gres(char *node_names, char *gres)
 	for (i=i_first; i<=i_last; i++) {
 		node_ptr = node_record_table_ptr + i;
 		(void) gres_plugin_node_reconfig(node_ptr->name,
-						 node_ptr->config_ptr->gres, 
+						 node_ptr->config_ptr->gres,
 						 &node_ptr->gres,
 						 &node_ptr->gres_list,
 						 slurmctld_conf.fast_schedule);
@@ -2404,12 +2404,20 @@ void make_node_idle(struct node_record *node_ptr,
 	int inx = node_ptr - node_record_table_ptr;
 	uint16_t node_flags;
 	time_t now = time(NULL);
+	bitstr_t *node_bitmap = NULL;
+
+	if (job_ptr) { /* Specific job completed */
+		if(job_ptr->node_bitmap_cg)
+			node_bitmap = job_ptr->node_bitmap_cg;
+		else
+			node_bitmap = job_ptr->node_bitmap;
+	}
 
 	xassert(node_ptr);
-	if (job_ptr &&			/* Specific job completed */
-	    (bit_test(job_ptr->node_bitmap_cg, inx))) {	/* Not a replay */
+	if (node_bitmap && (bit_test(node_bitmap, inx))) {
+		/* Not a replay */
 		last_job_update = now;
-		bit_clear(job_ptr->node_bitmap_cg, inx);
+		bit_clear(node_bitmap, inx);
 
 		job_update_cpu_cnt(job_ptr, inx);
 
-- 
GitLab