From 69883437f09d5177264a70625163237bdfe52ada Mon Sep 17 00:00:00 2001 From: Ben Clifford Date: Mon, 1 Jul 2024 14:03:35 +0000 Subject: [PATCH] Close stdin used to send config to Interchange This was introduced in PR #3463 and at the time I incorrectly assumed that interchange exit would close both ends of the pipe. That is untrue. For example: pytest parsl/tests/test_htex/ --config local ends with 341 fds open before this PR, and 327 file descriptors open after this PR. --- parsl/executors/high_throughput/executor.py | 1 + 1 file changed, 1 insertion(+) diff --git a/parsl/executors/high_throughput/executor.py b/parsl/executors/high_throughput/executor.py index 92a1965bb1..ad88702744 100644 --- a/parsl/executors/high_throughput/executor.py +++ b/parsl/executors/high_throughput/executor.py @@ -551,6 +551,7 @@ def _start_local_interchange_process(self) -> None: logger.debug("Popened interchange process. Writing config object") stdin.write(config_pickle) stdin.flush() + stdin.close() logger.debug("Sent config object. Requesting worker ports") try: (self.worker_task_port, self.worker_result_port) = self.command_client.run("WORKER_PORTS", timeout_s=120)