From c31ee795f7059edcdc42355ed84ed4f6c91a8e1d Mon Sep 17 00:00:00 2001
From: Morris Jette <jette@schedmd.com>
Date: Thu, 28 Apr 2016 07:30:41 -0700
Subject: [PATCH] Correction to task binding

This fixes a problem introduced in commit
31aa3244b55bcf6fafe8d76a2c3b8047afeac6e3
which was causing test1.91 to generate a fatal slurmd error.
---
 src/plugins/task/affinity/dist_tasks.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/plugins/task/affinity/dist_tasks.c b/src/plugins/task/affinity/dist_tasks.c
index 62c46d4ae9f..5bc1eda1e28 100644
--- a/src/plugins/task/affinity/dist_tasks.c
+++ b/src/plugins/task/affinity/dist_tasks.c
@@ -1157,8 +1157,9 @@ static int _task_layout_lllp_block(launch_tasks_request_msg_t *req,
 				continue;
 
 			sock_inx = i / pu_per_socket;
-			if (socket_tasks[sock_inx] >= req->ntasks_per_socket)
-				continue;  /* Default ntasks_per_socket = INFINITE */
+			if ((req->ntasks_per_socket != 0) &&
+			    (socket_tasks[sock_inx] >= req->ntasks_per_socket))
+				continue;
 			socket_tasks[sock_inx]++;
 
 			if (!masks[taskcount])
@@ -1196,6 +1197,8 @@ static int _task_layout_lllp_block(launch_tasks_request_msg_t *req,
 			if (++taskcount >= max_tasks)
 				break;
 		}
+		for (i = 0; i < hw_sockets; i++)
+			socket_tasks[i] = 0;
 	}
 	xfree(socket_tasks);
 
-- 
GitLab