From 9e3058256caaf81435609a2e1369a81d00a08efe Mon Sep 17 00:00:00 2001
From: Moe Jette <jette1@llnl.gov>
Date: Tue, 30 Nov 2010 17:35:26 +0000
Subject: [PATCH] change a log message from error() to debug() if it is the
 result of an inconsistent configuration

---
 src/plugins/select/linear/select_linear.c | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

diff --git a/src/plugins/select/linear/select_linear.c b/src/plugins/select/linear/select_linear.c
index 35c12292175..5eb6d96dd07 100644
--- a/src/plugins/select/linear/select_linear.c
+++ b/src/plugins/select/linear/select_linear.c
@@ -1386,9 +1386,20 @@ static int _rm_job_from_nodes(struct cr_record *cr_ptr,
 		if (cr_ptr->nodes[i].alloc_memory >= job_memory)
 			cr_ptr->nodes[i].alloc_memory -= job_memory;
 		else {
+			/* This can be the result of FastSchedule=0 and
+			 * the node being configured with fewer CPUs than
+			 * actually exist. The job allocation set when
+			 * slurmctld restarts may be based upon a lower CPU
+			 * count than when the job gets deallocated. */
+			if (select_fast_schedule ||
+			    (node_ptr->config_ptr->cpus == node_ptr->cpus)) {
+				error("%s: memory underflow for node %s",
+				      pre_err, node_ptr->name);
+			} else {
+				debug("%s: memory underflow for node %s",
+				      pre_err, node_ptr->name);
+			}
 			cr_ptr->nodes[i].alloc_memory = 0;
-			error("%s: memory underflow for node %s",
-			      pre_err, node_ptr->name);
 		}
 
 		if (remove_all) {
@@ -1921,10 +1932,10 @@ static void _init_node_cr(void)
 			node_ptr = node_record_table_ptr + i;
 			if (exclusive)
 				cr_ptr->nodes[i].exclusive_cnt++;
-			if (job_memory_cpu == 0)
+			if (job_memory_cpu == 0) {
 				cr_ptr->nodes[i].alloc_memory +=
 					job_memory_node;
-			else if (select_fast_schedule) {
+			} else if (select_fast_schedule) {
 				cr_ptr->nodes[i].alloc_memory +=
 					job_memory_cpu *
 					node_record_table_ptr[i].
-- 
GitLab