Skip to content

Commit 4e5de54

Browse files
bachradsusijwcart2
authored andcommitted
sepolicy: use multiprocessing 'fork' method
'fork' was the default starting method in Python before 3.14 and it's necessary for this code to work correctly Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2374569 sh-5.2# sepolicy manpage -a -p /builddir/build/BUILD/selinux-policy-41.43-build/BUILDROOT/usr/share/man/man8/ -w -r /builddir/build/BUILD/selinux-policy-41.43-build/BUILDROOT ValueError: No SELinux Policy installed Exception ignored while calling deallocator <function Pool.__del__ at 0x7f36f9d333d0>: Traceback (most recent call last): File "/usr/lib64/python3.14/multiprocessing/pool.py", line 271, in __del__ self._change_notifier.put(None) File "/usr/lib64/python3.14/multiprocessing/queues.py", line 397, in put self._writer.send_bytes(obj) File "/usr/lib64/python3.14/multiprocessing/connection.py", line 206, in send_bytes self._send_bytes(m[offset:offset + size]) File "/usr/lib64/python3.14/multiprocessing/connection.py", line 444, in _send_bytes self._send(header + buf) File "/usr/lib64/python3.14/multiprocessing/connection.py", line 400, in _send n = write(self._handle, buf) BrokenPipeError: [Errno 32] Broken pipe Signed-off-by: Petr Lautrbach <[email protected]> Acked-by: James Carter <[email protected]>
1 parent e3d270b commit 4e5de54

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

python/sepolicy/sepolicy.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
import sys
2626
import selinux
2727
import sepolicy
28-
from multiprocessing import Pool
28+
import multiprocessing
2929
from sepolicy import get_os_version, get_conditionals, get_conditionals_format_text
3030
import argparse
3131
PROGNAME = "selinux-python"
@@ -350,7 +350,8 @@ def manpage(args):
350350

351351
manpage_domains = set()
352352
manpage_roles = set()
353-
p = Pool()
353+
multiprocessing.set_start_method('fork')
354+
p = multiprocessing.Pool()
354355
async_results = []
355356
for domain in test_domains:
356357
async_results.append(p.apply_async(manpage_work, [domain, path, args.root, args.source_files, args.web]))

0 commit comments

Comments
 (0)