The branch, master has been updated
via 89f9c3c swrap: Allow to pass 8 fds
from ad8ab69 cmake: Remove unneeded policy with cmake 3.10
https://git.samba.org/?p=socket_wrapper.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 89f9c3c62d17116a782728863d038d6c99d49ab4
Author: Andreas Schneider <[email protected]>
Date: Mon Sep 8 16:41:13 2025 +0200
swrap: Allow to pass 8 fds
Python 3.14 is sending 8 file descriptors around for concurrent code.
SWRAP_ERROR[python3 (54391)] - swrap_sendmsg_unix_scm_rights:
cmsg->cmsg_len=48,size_fds_in=32 => num_fds_in=8 > SWRAP_MAX_PASSED_FDS(6)
REASON: Exception: Exception: Traceback (most recent call last):
File
"/builddir/build/BUILD/samba-4.23.0-build/samba-4.23.0rc3/bin/python/samba/tests/docs.py",
line 266, in test_default_s3
self._test_default(['bin/testparm'])
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
File
"/builddir/build/BUILD/samba-4.23.0-build/samba-4.23.0rc3/bin/python/samba/tests/docs.py",
line 323, in _test_default
future = executor.submit(check_or_set_smbconf_default, cmdline,
self.topdir, param, default)
File "/usr/lib64/python3.14/concurrent/futures/process.py", line 816, in
submit
self._adjust_process_count()
~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib64/python3.14/concurrent/futures/process.py", line 775, in
_adjust_process_count
self._spawn_process()
~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib64/python3.14/concurrent/futures/process.py", line 793, in
_spawn_process
p.start()
~~~~~~~^^
File "/usr/lib64/python3.14/multiprocessing/process.py", line 121, in
start
self._popen = self._Popen(self)
~~~~~~~~~~~^^^^^^
File "/usr/lib64/python3.14/multiprocessing/context.py", line 300, in
_Popen
return Popen(process_obj)
File "/usr/lib64/python3.14/multiprocessing/popen_forkserver.py", line
35, in __init__
super().__init__(process_obj)
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/usr/lib64/python3.14/multiprocessing/popen_fork.py", line 20, in
__init__
self._launch(process_obj)
~~~~~~~~~~~~^^^^^^^^^^^^^
File "/usr/lib64/python3.14/multiprocessing/popen_forkserver.py", line
51, in _launch
self.sentinel, w = forkserver.connect_to_new_process(self._fds)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
File "/usr/lib64/python3.14/multiprocessing/forkserver.py", line 113, in
connect_to_new_process
reduction.sendfds(client, allfds)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.14/multiprocessing/reduction.py", line 146, in
sendfds
sock.sendmsg([msg], [(socket.SOL_SOCKET, socket.SCM_RIGHTS, fds)])
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
OSError: [Errno 22] Invalid argument
Signed-off-by: Andreas Schneider <[email protected]>
Reviewed-by: Stefan Metzmacher <[email protected]>
-----------------------------------------------------------------------
Summary of changes:
src/socket_wrapper.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Changeset truncated at 500 lines:
diff --git a/src/socket_wrapper.c b/src/socket_wrapper.c
index bc4000c..54eb239 100644
--- a/src/socket_wrapper.c
+++ b/src/socket_wrapper.c
@@ -5634,7 +5634,7 @@ static int swrap_sendmsg_filter_cmsg_sol_socket(const
struct cmsghdr *cmsg,
static const uint64_t swrap_unix_scm_right_magic = 0x8e0e13f27c42fc38;
/*
- * We only allow up to 6 fds at a time
+ * We only allow up to 8 fds at a time
* as that's more than enough for Samba
* and it means we can keep the logic simple
* and work with fixed size arrays.
@@ -5646,7 +5646,7 @@ static const uint64_t swrap_unix_scm_right_magic =
0x8e0e13f27c42fc38;
#ifndef PIPE_BUF
#define PIPE_BUF 4096
#endif
-#define SWRAP_MAX_PASSED_FDS ((size_t)6)
+#define SWRAP_MAX_PASSED_FDS ((size_t)8)
#define SWRAP_MAX_PASSED_SOCKET_INFO SWRAP_MAX_PASSED_FDS
struct swrap_unix_scm_rights_payload {
uint8_t num_idxs;
--
Socket Wrapper Repository