From 47f1f4e93d7ac6d4496cc2b736967777e52cb7ea Mon Sep 17 00:00:00 2001 From: bersbersbers <12128514+bersbersbers@users.noreply.github.com> Date: Tue, 4 Feb 2025 01:24:12 +0100 Subject: [PATCH 1/2] Fix #1812, first try --- src/debugpy/_vendored/pydevd/pydevd.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/debugpy/_vendored/pydevd/pydevd.py b/src/debugpy/_vendored/pydevd/pydevd.py index 51f69be3d..314d6479c 100644 --- a/src/debugpy/_vendored/pydevd/pydevd.py +++ b/src/debugpy/_vendored/pydevd/pydevd.py @@ -726,6 +726,8 @@ def __init__(self, set_as_global=True): self._local_thread_trace_func = threading.local() + self._client_socket = None + self._server_socket_ready_event = ThreadingEvent() self._server_socket_name = None @@ -1504,6 +1506,7 @@ def initialize_network(self, sock, terminate_on_socket_close=True): def connect(self, host, port): if host: s = start_client(host, port) + self._client_socket = s else: s = start_server(port) @@ -2551,6 +2554,8 @@ def dispose_and_kill_all_pydevd_threads(self, wait=True, timeout=0.5): except: pass finally: + if self._client_socket: + self._client_socket.close() pydev_log.debug("PyDB.dispose_and_kill_all_pydevd_threads: finished") def prepare_to_run(self): From 73966ab87222fe852c823b2095fd80299e36bca1 Mon Sep 17 00:00:00 2001 From: bersbersbers <12128514+bersbersbers@users.noreply.github.com> Date: Wed, 5 Feb 2025 13:54:38 +0100 Subject: [PATCH 2/2] Prevent tries to close socket multiple times --- src/debugpy/_vendored/pydevd/pydevd.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/debugpy/_vendored/pydevd/pydevd.py b/src/debugpy/_vendored/pydevd/pydevd.py index 314d6479c..bc13f111e 100644 --- a/src/debugpy/_vendored/pydevd/pydevd.py +++ b/src/debugpy/_vendored/pydevd/pydevd.py @@ -2556,6 +2556,8 @@ def dispose_and_kill_all_pydevd_threads(self, wait=True, timeout=0.5): finally: if self._client_socket: self._client_socket.close() + self._client_socket = None + pydev_log.debug("PyDB.dispose_and_kill_all_pydevd_threads: finished") def prepare_to_run(self):