From: Serhiy Storchaka Date: Tue, 21 Jul 2026 13:22:20 +0000 (+0300) Subject: gh-154352: Fix killing a worker process in regrtest on OpenBSD (GH-154353) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bfd774d61eeb384b74380deb1fc5b726decba75e;p=thirdparty%2FPython%2Fcpython.git gh-154352: Fix killing a worker process in regrtest on OpenBSD (GH-154353) os.getsid() is only allowed for a process in the same session on OpenBSD. Worker processes are started in their own session, so the failure means that the process group can be killed. Co-authored-by: Claude Opus 4.8 --- diff --git a/Lib/test/libregrtest/run_workers.py b/Lib/test/libregrtest/run_workers.py index befdac7ee77f..7e6c7fa4cc55 100644 --- a/Lib/test/libregrtest/run_workers.py +++ b/Lib/test/libregrtest/run_workers.py @@ -147,9 +147,12 @@ class WorkerThread(threading.Thread): use_killpg = USE_PROCESS_GROUP if use_killpg: - parent_sid = os.getsid(0) - sid = os.getsid(popen.pid) - use_killpg = (sid != parent_sid) + try: + use_killpg = (os.getsid(popen.pid) != os.getsid(0)) + except PermissionError: + # On OpenBSD getsid() is only allowed for a process in the + # same session, so the failure means that it is not. + use_killpg = True if use_killpg: what = f"{self} process group"