From 2a9e6f3091b82d5fe961e33da95f0bd1c94e9312 Mon Sep 17 00:00:00 2001
From: Moe Jette <jette1@llnl.gov>
Date: Wed, 28 Jul 2010 20:34:12 +0000
Subject: [PATCH] fix bug in identifying highest file descriptor in select()
 call

---
 src/slurmctld/controller.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/slurmctld/controller.c b/src/slurmctld/controller.c
index d66f0002f3d..f83bb232033 100644
--- a/src/slurmctld/controller.c
+++ b/src/slurmctld/controller.c
@@ -914,10 +914,13 @@ static void *_slurmctld_rpc_mgr(void *no_data)
 	 * Process incoming RPCs until told to shutdown
 	 */
 	while (_wait_for_server_thread()) {
+		int max_fd = -1;
 		FD_ZERO(&rfds);
-		for (i=0; i<nports; i++)
+		for (i=0; i<nports; i++) {
 			FD_SET(sockfd[i], &rfds);
-		if (select(nports, &rfds, NULL, NULL, NULL) == -1) {
+			max_fd = MAX(sockfd[i], max_fd);
+		}
+		if (select(max_fd+1, &rfds, NULL, NULL, NULL) == -1) {
 			if (errno != EINTR)
 				error("slurm_accept_msg_conn select: %m");
 			_free_server_thread();
-- 
GitLab