From 081e608ff845b498e717c26c4b1b2cbe64785238 Mon Sep 17 00:00:00 2001
From: Moe Jette <jette1@llnl.gov>
Date: Tue, 6 Apr 2010 21:36:15 +0000
Subject: [PATCH] clear SLURM_JOB_CPUS_PER_NODE in job environment after
 resize. We don't have the correct info available now

---
 src/scontrol/update_job.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/scontrol/update_job.c b/src/scontrol/update_job.c
index 4c9a13c7c5e..47c2af00913 100644
--- a/src/scontrol/update_job.c
+++ b/src/scontrol/update_job.c
@@ -626,7 +626,7 @@ scontrol_job_notify(int argc, char *argv[])
 static void _update_job_size(uint32_t job_id)
 {
 	resource_allocation_response_msg_t *alloc_info;
-	char *fname_csh = NULL, *fname_sh = NULL, *tmp;
+	char *fname_csh = NULL, *fname_sh = NULL;
 	FILE *resize_csh = NULL, *resize_sh = NULL;
 
 	if (slurm_allocation_lookup_lite(job_id, &alloc_info) !=
@@ -673,6 +673,16 @@ static void _update_job_size(uint32_t job_id)
 			alloc_info->node_cnt);
 	}
 	if (getenv("SLURM_JOB_CPUS_PER_NODE")) {
+#if 1
+		fprintf(resize_sh, "unset SLURM_JOB_CPUS_PER_NODE\n");
+		fprintf(resize_csh, "unsetenv SLURM_JOB_CPUS_PER_NODE\n");
+#else
+		/* The job resource structure is currently based upon the
+		 * original job allocation, so we don't have sufficient
+		 * information to recreate this environment variable today.
+		 * This is a possible future enhancement if/when job resource
+		 * information is corrected after job resize */
+		char *tmp;
 		tmp = uint32_compressed_to_str(alloc_info->num_cpu_groups,
 					       alloc_info->cpus_per_node,
 					       alloc_info->cpu_count_reps);
@@ -681,6 +691,7 @@ static void _update_job_size(uint32_t job_id)
 		fprintf(resize_csh, "setenv SLURM_JOB_CPUS_PER_NODE \"%s\"\n",
 			tmp);
 		xfree(tmp);
+#endif
 	}
 	if (getenv("SLURM_TASKS_PER_NODE")) {
 		/* We don't have sufficient information to recreate this */
-- 
GitLab