From d4ae6f20cdf8322025edc7f74e2e46ad641bd53f Mon Sep 17 00:00:00 2001
From: Moe Jette <jette1@llnl.gov>
Date: Thu, 4 Jan 2007 20:39:02 +0000
Subject: [PATCH] svn merge -r10688:10694
 https://eris.llnl.gov/svn/slurm/branches/slurm-1.1

---
 src/slurmctld/proc_req.c | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/src/slurmctld/proc_req.c b/src/slurmctld/proc_req.c
index f9e4a6430c8..a42326e434c 100644
--- a/src/slurmctld/proc_req.c
+++ b/src/slurmctld/proc_req.c
@@ -1681,9 +1681,15 @@ static void _slurm_rpc_submit_batch_job(slurm_msg_t * msg)
 		      (unsigned int) uid);
 	}
 	if (error_code == SLURM_SUCCESS) {
-		if ((job_desc_msg->job_id != SLURM_BATCH_SCRIPT)
-		&&  (find_job_record(job_desc_msg->job_id) != NULL)) {
-
+		lock_slurmctld(job_write_lock);
+		if (job_desc_msg->job_id != SLURM_BATCH_SCRIPT) {
+			job_ptr = find_job_record(job_desc_msg->job_id);
+			if (job_ptr && IS_JOB_FINISHED(job_ptr))
+				job_ptr = NULL;
+		} else
+			job_ptr = NULL;
+
+		if (job_ptr) {	/* Active job allocation */
 #ifdef HAVE_FRONT_END	/* Limited job step support */
 			/* Non-super users not permitted to run job steps on front-end.
 	 		 * A single slurmd can not handle a heavy load. */
@@ -1691,10 +1697,10 @@ static void _slurm_rpc_submit_batch_job(slurm_msg_t * msg)
 				info("Attempt to execute batch job step by uid=%u",
 					(unsigned int) uid);
 				slurm_send_rc_msg(msg, ESLURM_BATCH_ONLY);
+				unlock_slurmctld(job_write_lock);
 				return;
 			}
 #endif
-			lock_slurmctld(job_write_lock);
 			error_code = _launch_batch_step(job_desc_msg, uid,
 							&step_id);
 			unlock_slurmctld(job_write_lock);
@@ -1722,7 +1728,7 @@ static void _slurm_rpc_submit_batch_job(slurm_msg_t * msg)
 			return;
 		}
 
-		lock_slurmctld(job_write_lock);
+		/* Create new job allocation */
 		error_code = job_allocate(job_desc_msg, 
 				job_desc_msg->immediate, false,
 				false, uid, &job_ptr);
-- 
GitLab