From 4ac92784965b46bbe80000532fe84e6cb94b27ba Mon Sep 17 00:00:00 2001
From: Morris Jette <jette@schedmd.com>
Date: Fri, 9 Dec 2011 15:49:52 -0800
Subject: [PATCH] Improve timing of preemption GraceTime handling

---
 src/slurmctld/node_scheduler.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/slurmctld/node_scheduler.c b/src/slurmctld/node_scheduler.c
index 05a56c5e45d..4b9716a11d6 100644
--- a/src/slurmctld/node_scheduler.c
+++ b/src/slurmctld/node_scheduler.c
@@ -1339,13 +1339,15 @@ extern int select_nodes(struct job_record *job_ptr, bool test_only,
 		    (detail_ptr->preempt_start_time >
 		     (now - slurmctld_conf.kill_wait -
 		      slurmctld_conf.msg_timeout))) {
-			/* Job preemption still in progress,
+			/* Job preemption may still be in progress,
 			 * do not preempt any more jobs yet */
 			error_code = ESLURM_NODES_BUSY;
 		} else {
 			_preempt_jobs(preemptee_job_list, &error_code);
-			if (error_code == ESLURM_NODES_BUSY)
+			if ((error_code == ESLURM_NODES_BUSY) &&
+			    (detail_ptr->preempt_start_time == 0)) {
   				detail_ptr->preempt_start_time = now;
+			}
 		}
 	}
 	if (error_code) {
-- 
GitLab