From 72f1f1d0d219bec2520e96a08fde7355fe83bfb8 Mon Sep 17 00:00:00 2001
From: Morris Jette <jette@schedmd.com>
Date: Thu, 21 Aug 2014 16:33:44 -0700
Subject: [PATCH] Revert previous commit

Revert commit 26e77f93f0b6cc1218d84d0b3c350a11ab01a791
This logic is obviously wrong. Investigate more tomorrow.
---
 src/slurmctld/job_mgr.c | 27 ++++++++++++++++-----------
 1 file changed, 16 insertions(+), 11 deletions(-)

diff --git a/src/slurmctld/job_mgr.c b/src/slurmctld/job_mgr.c
index 9a05390b8a9..c86eaa0c549 100644
--- a/src/slurmctld/job_mgr.c
+++ b/src/slurmctld/job_mgr.c
@@ -7248,6 +7248,7 @@ extern int pack_one_job(char **buffer_ptr, int *buffer_size,
 			uint32_t job_id, uint16_t show_flags, uid_t uid,
 			uint16_t protocol_version)
 {
+	ListIterator job_iterator;
 	struct job_record *job_ptr;
 	uint32_t jobs_packed = 0, tmp_offset;
 	Buf buffer;
@@ -7271,18 +7272,22 @@ extern int pack_one_job(char **buffer_ptr, int *buffer_size,
 			jobs_packed++;
 		}
 	} else {
-		/* Single job ID not found. Test for job array. */
-		job_ptr = job_array_hash_j[JOB_HASH_INX(job_id)];
-		while (job_ptr) {
-			if (job_ptr->array_job_id == job_id) {
-				if (_hide_job(job_ptr, uid))
-					break;
-				pack_job(job_ptr, show_flags, buffer,
-					 protocol_version, uid);
-				jobs_packed++;
-			}
-			job_ptr = job_ptr->job_array_next_j;
+		/* Single job ID not found. It could reference a job array. */
+		job_iterator = list_iterator_create(job_list);
+		while ((job_ptr = (struct job_record *)
+				  list_next(job_iterator))) {
+			if ((job_ptr->job_id != job_id) &&
+			    ((job_ptr->array_task_id ==  NO_VAL) ||
+			     (job_ptr->array_job_id  != job_id)))
+				continue;
+
+			if (_hide_job(job_ptr, uid))
+				break;
+			pack_job(job_ptr, show_flags, buffer, protocol_version,
+				 uid);
+			jobs_packed++;
 		}
+		list_iterator_destroy(job_iterator);
 	}
 
 	if (jobs_packed == 0) {
-- 
GitLab