From 096d534cc3147887ea351697ac13791ac847e5c6 Mon Sep 17 00:00:00 2001
From: Brian Christiansen <brian@schedmd.com>
Date: Wed, 7 Jan 2015 14:05:21 -0800
Subject: [PATCH] Increase maximum node list size (for incoming RPC) from 64k
 to num_tasks * MAXHOSTNAMELEN.

Bug 1352
---
 NEWS                     | 2 ++
 src/slurmctld/job_mgr.c  | 6 ++++--
 src/slurmctld/step_mgr.c | 3 ++-
 3 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/NEWS b/NEWS
index 43cd915e3eb..352f74857b2 100644
--- a/NEWS
+++ b/NEWS
@@ -19,6 +19,8 @@ documents those changes that are of interest to users and administrators.
     NOTE: Only supported with select/linear plugin.
     NOTE: The program contribs/sgi/netloc_to_topology can be used to build
     Slurm's topology.conf file.
+ -- Increase maximum node list size (for incoming RPC) from 64k to
+    num_tasks * MAXHOSTNAMELEN.
 
 * Changes in Slurm 15.08.0pre1
 ==============================
diff --git a/src/slurmctld/job_mgr.c b/src/slurmctld/job_mgr.c
index 81f67262eba..2eee12e1e81 100644
--- a/src/slurmctld/job_mgr.c
+++ b/src/slurmctld/job_mgr.c
@@ -5716,7 +5716,8 @@ static int _test_job_desc_fields(job_desc_msg_t * job_desc)
 	    _test_strlen(job_desc->comment, "comment", 1024)		||
 	    _test_strlen(job_desc->cpu_bind, "cpu_bind", 1024)		||
 	    _test_strlen(job_desc->dependency, "dependency", 1024*128)	||
-	    _test_strlen(job_desc->exc_nodes, "exc_nodes", 1024*64)	||
+	    _test_strlen(job_desc->exc_nodes, "exc_nodes",
+			    job_desc->num_tasks * MAXHOSTNAMELEN)	||
 	    _test_strlen(job_desc->features, "features", 1024)		||
 	    _test_strlen(job_desc->gres, "gres", 1024)			||
 	    _test_strlen(job_desc->licenses, "licenses", 1024)		||
@@ -5729,7 +5730,8 @@ static int _test_job_desc_fields(job_desc_msg_t * job_desc)
 	    _test_strlen(job_desc->partition, "partition", 1024)	||
 	    _test_strlen(job_desc->qos, "qos", 1024)			||
 	    _test_strlen(job_desc->ramdiskimage, "ramdiskimage", 1024)	||
-	    _test_strlen(job_desc->req_nodes, "req_nodes", 1024*64)	||
+	    _test_strlen(job_desc->req_nodes, "req_nodes",
+			    job_desc->num_tasks * MAXHOSTNAMELEN)	||
 	    _test_strlen(job_desc->reservation, "reservation", 1024)	||
 	    _test_strlen(job_desc->script, "script", 1024 * 1024 * 4)	||
 	    _test_strlen(job_desc->std_err, "std_err", MAXPATHLEN)	||
diff --git a/src/slurmctld/step_mgr.c b/src/slurmctld/step_mgr.c
index 64fc91a74e8..85a95446a96 100644
--- a/src/slurmctld/step_mgr.c
+++ b/src/slurmctld/step_mgr.c
@@ -2154,7 +2154,8 @@ step_create(job_step_create_request_msg_t *step_specs,
 	    _test_strlen(step_specs->host, "host", 1024)		||
 	    _test_strlen(step_specs->name, "name", 1024)		||
 	    _test_strlen(step_specs->network, "network", 1024)		||
-	    _test_strlen(step_specs->node_list, "node_list", 1024*64))
+	    _test_strlen(step_specs->node_list, "node_list",
+		    step_specs->num_tasks * MAXHOSTNAMELEN))
 		return ESLURM_PATHNAME_TOO_LONG;
 
 	if (job_ptr->next_step_id >= slurmctld_conf.max_step_cnt)
-- 
GitLab