From cb0afa3d04a44f0477bed6ac64ad24ca07b4b9a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bourtguize-Ramel=20Cl=C3=A9ment?= Date: Wed, 4 Mar 2026 12:18:05 +0100 Subject: [PATCH] fix: append PID to log filename to prevent concurrent server collision When multiple MCP servers start within the same second, they derive the same log filename from datetime_tag() (second-level precision only). Both then open the file with mode='w', causing one server's logs to be truncated and all subsequent output to be interleaved. Appending os.getpid() to the filename guarantees uniqueness across concurrent processes regardless of timing. --- src/serena/config/serena_config.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/serena/config/serena_config.py b/src/serena/config/serena_config.py index 9273d31f..798ef1af 100644 --- a/src/serena/config/serena_config.py +++ b/src/serena/config/serena_config.py @@ -104,7 +104,7 @@ class SerenaPaths: """ log_dir = os.path.join(self.serena_user_home_dir, "logs", datetime.now().strftime("%Y-%m-%d")) os.makedirs(log_dir, exist_ok=True) - self.last_returned_log_file_path = os.path.join(log_dir, prefix + "_" + datetime_tag() + ".txt") + self.last_returned_log_file_path = os.path.join(log_dir, prefix + "_" + datetime_tag() + f"_{os.getpid()}" + ".txt") return self.last_returned_log_file_path # TODO: Paths from constants.py should be moved here