From a2b1d00afb7fc2b161debcdd9c5a820204d10400 Mon Sep 17 00:00:00 2001
From: Moe Jette <jette1@llnl.gov>
Date: Wed, 18 Aug 2004 18:41:12 +0000
Subject: [PATCH] Minor mods to avoid sending duplicate messages to the BGL
 front-end node.

---
 src/slurmctld/job_mgr.c        | 3 +++
 src/slurmctld/node_mgr.c       | 9 +++------
 src/slurmctld/node_scheduler.c | 4 ++++
 src/slurmctld/ping_nodes.c     | 2 +-
 src/slurmctld/step_mgr.c       | 3 +++
 5 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/src/slurmctld/job_mgr.c b/src/slurmctld/job_mgr.c
index c7aaa977edf..5fb8c8af484 100644
--- a/src/slurmctld/job_mgr.c
+++ b/src/slurmctld/job_mgr.c
@@ -3414,6 +3414,9 @@ _xmit_new_end_time(struct job_record *job_ptr)
 			node_names[MAX_NAME_LEN * agent_args->node_count],
 			node_record_table_ptr[i].name, MAX_NAME_LEN);
 		agent_args->node_count++;
+#ifdef HAVE_BGL
+		break;	/* only do one front-end node */
+#endif
 	}
 
 	agent_args->msg_args = job_time_msg_ptr;
diff --git a/src/slurmctld/node_mgr.c b/src/slurmctld/node_mgr.c
index 7fbee8312ee..24e1bf286c2 100644
--- a/src/slurmctld/node_mgr.c
+++ b/src/slurmctld/node_mgr.c
@@ -1558,11 +1558,6 @@ void msg_to_slurmd (slurm_msg_type_t msg_type)
 	}
 
 	for (i = 0; i < node_record_count; i++) {
-#ifdef HAVE_BGL
-		if (i > 0)
-			break;
-#endif
-
 		if ((kill_agent_args->node_count+1) > kill_buf_rec_size) {
 			kill_buf_rec_size += 64;
 			xrealloc ((kill_agent_args->slurm_addr), 
@@ -1577,7 +1572,9 @@ void msg_to_slurmd (slurm_msg_type_t msg_type)
 		strncpy (&kill_agent_args->node_names[pos],
 		         node_record_table_ptr[i].name, MAX_NAME_LEN);
 		kill_agent_args->node_count++;
-
+#ifdef HAVE_BGL
+		break;	/* only done one front-end node */
+#endif
 	}
 
 	if (kill_agent_args->node_count == 0)
diff --git a/src/slurmctld/node_scheduler.c b/src/slurmctld/node_scheduler.c
index 8f72078ae3d..13ef2b7bf23 100644
--- a/src/slurmctld/node_scheduler.c
+++ b/src/slurmctld/node_scheduler.c
@@ -1408,6 +1408,10 @@ extern void re_kill_job(struct job_record *job_ptr)
 		if (node_ptr->node_state & NODE_STATE_NO_RESPOND)
 			continue;
 		(void) hostlist_push_host(kill_hostlist, node_ptr->name);
+#ifdef HAVE_BGL
+		if (agent_args->node_count > 0)
+			continue;	/* only do one front-end node */
+#endif
 		if ((agent_args->node_count + 1) > buf_rec_size) {
 			buf_rec_size += 128;
 			xrealloc((agent_args->slurm_addr),
diff --git a/src/slurmctld/ping_nodes.c b/src/slurmctld/ping_nodes.c
index cc047339bae..04256e48f02 100644
--- a/src/slurmctld/ping_nodes.c
+++ b/src/slurmctld/ping_nodes.c
@@ -177,7 +177,7 @@ void ping_nodes (void)
 
 #ifdef HAVE_BGL
 		if (i > 0)	/* Only one front-end node to ping/register */
-			break;
+			continue;
 #endif
 
 		if (node_ptr->last_response == (time_t)0) {
diff --git a/src/slurmctld/step_mgr.c b/src/slurmctld/step_mgr.c
index c2bb7913f63..ae777d5fc4b 100644
--- a/src/slurmctld/step_mgr.c
+++ b/src/slurmctld/step_mgr.c
@@ -276,6 +276,9 @@ void signal_step_tasks(struct step_record *step_ptr, uint16_t signal)
 			node_names[MAX_NAME_LEN * agent_args->node_count],
 			node_record_table_ptr[i].name, MAX_NAME_LEN);
 		agent_args->node_count++;
+#ifdef HAVE_BGL
+		break;	/* only do the one front-end node */
+#endif
 	}
 
 	if (agent_args->node_count == 0) {
-- 
GitLab