From 15f11611c138ee5a6256a1ec54be0675e8de63fc Mon Sep 17 00:00:00 2001 From: "Gabriele N. Tornetta" Date: Mon, 10 Nov 2025 12:21:12 +0000 Subject: [PATCH] fix: ensure IPC file closed after use We fix a problem that caused IPC string files to evade proper context management, leading to spurious ``ResourceWarning``s at runtime. Fixes #15176. --- ddtrace/internal/ipc.py | 7 ++----- .../fix-ipc-open-file-ensure-closed-98d9707f56c416da.yaml | 4 ++++ 2 files changed, 6 insertions(+), 5 deletions(-) create mode 100644 releasenotes/notes/fix-ipc-open-file-ensure-closed-98d9707f56c416da.yaml diff --git a/ddtrace/internal/ipc.py b/ddtrace/internal/ipc.py index 61bfa2f8e60..03af0886624 100644 --- a/ddtrace/internal/ipc.py +++ b/ddtrace/internal/ipc.py @@ -1,4 +1,3 @@ -from contextlib import contextmanager import os import secrets import tempfile @@ -57,9 +56,7 @@ class ReadLock(BaseUnixLock): class WriteLock(BaseUnixLock): __acquire_mode__ = fcntl.LOCK_EX - @contextmanager - def open_file(path, mode): - yield unpatched_open(path, mode) + open_file = unpatched_open except ModuleNotFoundError: # Availability: Windows @@ -78,7 +75,7 @@ def release(self): ReadLock = WriteLock = BaseWinLock # type: ignore - def open_file(path, mode): + def open_file(path, mode): # type: ignore import _winapi # force all modes to be read/write binary diff --git a/releasenotes/notes/fix-ipc-open-file-ensure-closed-98d9707f56c416da.yaml b/releasenotes/notes/fix-ipc-open-file-ensure-closed-98d9707f56c416da.yaml new file mode 100644 index 00000000000..116a58490ce --- /dev/null +++ b/releasenotes/notes/fix-ipc-open-file-ensure-closed-98d9707f56c416da.yaml @@ -0,0 +1,4 @@ +--- +fixes: + - | + Prevent a potential ``ResourceWarning`` in multiprocess scenarios.