gh-154352: Fix killing a worker process in regrtest on OpenBSD (GH-154353)

serhiy-storchaka <[email protected]>
Newsgroups gmane.comp.python.cvs
Message-ID <[email protected]>
https://github.com/python/cpython/commit/bfd774d61eeb384b74380deb1fc5b726decba75e
commit: bfd774d61eeb384b74380deb1fc5b726decba75e
branch: main
author: Serhiy Storchaka <[email protected]>
committer: serhiy-storchaka <[email protected]>
date: 2026-07-21T13:22:20Z
summary:

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 <[email protected]>

files:
M Lib/test/libregrtest/run_workers.py

diff --git a/Lib/test/libregrtest/run_workers.py b/Lib/test/libregrtest/run_workers.py
index befdac7ee77f107..7e6c7fa4cc5507a 100644
--- a/Lib/test/libregrtest/run_workers.py
+++ b/Lib/test/libregrtest/run_workers.py
@@ -147,9 +147,12 @@ def _kill(self) -> None:
 
         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"

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.