From c8d46bfe2819f24fc0ef72b18985a95b5980c13d Mon Sep 17 00:00:00 2001
From: Morris Jette <jette@schedmd.com>
Date: Mon, 29 Feb 2016 11:08:49 -0800
Subject: [PATCH] power_save + PrologSlurmctld sync fix

If power save mode was configured along with PrologSlurmctld, then
when PrologSlurmctld completed, it was clearing the node's PowerUp
state flag, which launched the job before boot completed. New logic
waits for the boot to complete and slurmd to register on the node
before clearing the PowerUp flag.
---
 src/slurmctld/job_scheduler.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/slurmctld/job_scheduler.c b/src/slurmctld/job_scheduler.c
index 1c88a7a2512..e03f4816384 100644
--- a/src/slurmctld/job_scheduler.c
+++ b/src/slurmctld/job_scheduler.c
@@ -3658,7 +3658,9 @@ static void *_run_prolog(void *arg)
 			error("prolog_slurmctld job %u now defunct", job_id);
 	}
 	prolog_running_decr(job_ptr);
-	if (job_ptr && job_ptr->node_bitmap) {
+	if (power_save_test()) {
+		/* Wait for node to register after booting */
+	} else if (job_ptr && job_ptr->node_bitmap) {
 		for (i=0; i<node_record_count; i++) {
 			if (bit_test(job_ptr->node_bitmap, i) == 0)
 				continue;
-- 
GitLab