Package: src:python-snitun Version: 0.45.1-1 Severity: serious Tags: ftbfs forky sid
Dear maintainer: During a rebuild of all packages in unstable, this package failed to build. Below you will find the last part of the build log (probably the most relevant part, but not necessarily). If required, the full build log is available here: https://people.debian.org/~sanvila/build-logs/202512/ About the archive rebuild: The build was made on virtual machines from AWS, using sbuild and a reduced chroot with only build-essential packages. If you cannot reproduce the bug please contact me privately, as I am willing to provide ssh access to a virtual machine where the bug is fully reproducible. If this is really a bug in one of the build-depends, please use reassign and add an affects on src:python-snitun, so that this is still visible in the BTS web page for this package. Thanks. -------------------------------------------------------------------------------- [...] debian/rules clean dh clean --buildsystem=pybuild dh_auto_clean -O--buildsystem=pybuild dh_autoreconf_clean -O--buildsystem=pybuild dh_clean -O--buildsystem=pybuild debian/rules binary dh binary --buildsystem=pybuild dh_update_autotools_config -O--buildsystem=pybuild dh_autoreconf -O--buildsystem=pybuild dh_auto_configure -O--buildsystem=pybuild dh_auto_build -O--buildsystem=pybuild I: pybuild plugin_pyproject:131: Building wheel for python3.14 with "build" module I: pybuild base:317: python3.14 -m build --skip-dependency-check --no-isolation --wheel --outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14 * Building wheel... /usr/lib/python3/dist-packages/setuptools/config/_apply_pyprojecttoml.py:82: SetuptoolsDeprecationWarning: `project.license` as a TOML table is deprecated [... snipped ...] ---------------------------- Captured stderr setup ----------------------------- DEBUG:asyncio:Using selector: EpollSelector ------------------------------ Captured log setup ------------------------------ DEBUG asyncio:selector_events.py:64 Using selector: EpollSelector _____________________________ test_peer_connection _____________________________ test_server_sync = [<socket.socket fd=40, family=2, type=1, proto=0, laddr=('127.0.0.1', 8366), raddr=('127.0.0.1', 33178)>] test_client_sync = <socket.socket fd=39, family=2, type=1, proto=0, laddr=('127.0.0.1', 33178), raddr=('127.0.0.1', 8366)> event_loop = <_UnixSelectorEventLoop running=False closed=False debug=False> def test_peer_connection( test_server_sync: list[socket.socket], test_client_sync: socket.socket, event_loop: asyncio.AbstractEventLoop, ) -> None: """Run a full flow of with a peer.""" worker = ServerWorker(FERNET_TOKENS) valid = datetime.now(tz=UTC) + timedelta(days=1) aes_key = os.urandom(32) aes_iv = os.urandom(16) hostname = "localhost" fernet_token = create_peer_config(valid.timestamp(), hostname, aes_key, aes_iv) > worker.start() tests/server/test_worker.py:43: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.14/multiprocessing/process.py:121: in start self._popen = self._Popen(self) ^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/multiprocessing/context.py:224: in _Popen return _default_context.get_context().Process._Popen(process_obj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/multiprocessing/context.py:300: in _Popen return Popen(process_obj) ^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/multiprocessing/popen_forkserver.py:35: in __init__ super().__init__(process_obj) /usr/lib/python3.14/multiprocessing/popen_fork.py:20: in __init__ self._launch(process_obj) /usr/lib/python3.14/multiprocessing/popen_forkserver.py:47: in _launch reduction.dump(process_obj, buf) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ obj = <ServerWorker name='ServerWorker-33' parent=91 initial> file = <_io.BytesIO object at 0x7f6c64f0e340>, protocol = None def dump(obj, file, protocol=None): '''Replacement for pickle.dump() using ForkingPickler.''' > ForkingPickler(file, protocol).dump(obj) E TypeError: cannot pickle 'weakref.ReferenceType' object E when serializing dict item '_weakref' E when serializing multiprocessing.util.Finalize state E when serializing multiprocessing.util.Finalize object E when serializing dict item 'finalizer' E when serializing multiprocessing.popen_forkserver.Popen state E when serializing multiprocessing.popen_forkserver.Popen object E when serializing dict item '_popen' E when serializing multiprocessing.context.ForkServerProcess state E when serializing multiprocessing.context.ForkServerProcess object E when serializing dict item '_process' E when serializing multiprocessing.managers.SyncManager state E when serializing multiprocessing.managers.SyncManager object E when serializing dict item '_manager' E when serializing snitun.server.worker.ServerWorker state E when serializing snitun.server.worker.ServerWorker object /usr/lib/python3.14/multiprocessing/reduction.py:60: TypeError ---------------------------- Captured stderr setup ----------------------------- DEBUG:asyncio:Using selector: EpollSelector ------------------------------ Captured log setup ------------------------------ DEBUG asyncio:selector_events.py:64 Using selector: EpollSelector _______________________ test_peer_connection_disconnect ________________________ test_server_sync = [<socket.socket fd=28, family=2, type=1, proto=0, laddr=('127.0.0.1', 8366), raddr=('127.0.0.1', 33182)>] test_client_sync = <socket.socket fd=24, family=2, type=1, proto=0, laddr=('127.0.0.1', 33182), raddr=('127.0.0.1', 8366)> event_loop = <_UnixSelectorEventLoop running=False closed=False debug=False> def test_peer_connection_disconnect( test_server_sync: list[socket.socket], test_client_sync: socket.socket, event_loop: asyncio.AbstractEventLoop, ) -> None: """Run a full flow of with a peer & disconnect.""" worker = ServerWorker(FERNET_TOKENS) valid = datetime.now(tz=UTC) + timedelta(days=1) aes_key = os.urandom(32) aes_iv = os.urandom(16) hostname = "localhost" fernet_token = create_peer_config(valid.timestamp(), hostname, aes_key, aes_iv) > worker.start() tests/server/test_worker.py:74: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.14/multiprocessing/process.py:121: in start self._popen = self._Popen(self) ^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/multiprocessing/context.py:224: in _Popen return _default_context.get_context().Process._Popen(process_obj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/multiprocessing/context.py:300: in _Popen return Popen(process_obj) ^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/multiprocessing/popen_forkserver.py:35: in __init__ super().__init__(process_obj) /usr/lib/python3.14/multiprocessing/popen_fork.py:20: in __init__ self._launch(process_obj) /usr/lib/python3.14/multiprocessing/popen_forkserver.py:47: in _launch reduction.dump(process_obj, buf) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ obj = <ServerWorker name='ServerWorker-35' parent=91 initial> file = <_io.BytesIO object at 0x7f6c64f0c630>, protocol = None def dump(obj, file, protocol=None): '''Replacement for pickle.dump() using ForkingPickler.''' > ForkingPickler(file, protocol).dump(obj) E TypeError: cannot pickle 'weakref.ReferenceType' object E when serializing dict item '_weakref' E when serializing multiprocessing.util.Finalize state E when serializing multiprocessing.util.Finalize object E when serializing dict item 'finalizer' E when serializing multiprocessing.popen_forkserver.Popen state E when serializing multiprocessing.popen_forkserver.Popen object E when serializing dict item '_popen' E when serializing multiprocessing.context.ForkServerProcess state E when serializing multiprocessing.context.ForkServerProcess object E when serializing dict item '_process' E when serializing multiprocessing.managers.SyncManager state E when serializing multiprocessing.managers.SyncManager object E when serializing dict item '_manager' E when serializing snitun.server.worker.ServerWorker state E when serializing snitun.server.worker.ServerWorker object /usr/lib/python3.14/multiprocessing/reduction.py:60: TypeError ---------------------------- Captured stderr setup ----------------------------- DEBUG:asyncio:Using selector: EpollSelector ------------------------------ Captured log setup ------------------------------ DEBUG asyncio:selector_events.py:64 Using selector: EpollSelector _____________________________ test_sni_connection ______________________________ test_server_sync = [<socket.socket fd=30, family=2, type=1, proto=0, laddr=('127.0.0.1', 8366), raddr=('127.0.0.1', 33192)>, <socket.socket fd=33, family=2, type=1, proto=0, laddr=('127.0.0.1', 8366), raddr=('127.0.0.1', 33206)>] test_client_sync = <socket.socket fd=24, family=2, type=1, proto=0, laddr=('127.0.0.1', 33192), raddr=('127.0.0.1', 8366)> test_client_ssl_sync = <socket.socket fd=29, family=2, type=1, proto=0, laddr=('127.0.0.1', 33206), raddr=('127.0.0.1', 8366)> event_loop = <_UnixSelectorEventLoop running=False closed=False debug=False> def test_sni_connection( test_server_sync: list[socket.socket], test_client_sync: socket.socket, test_client_ssl_sync: socket.socket, event_loop: asyncio.AbstractEventLoop, ) -> None: """Run a full flow of with a peer.""" worker = ServerWorker(FERNET_TOKENS) valid = datetime.now(tz=UTC) + timedelta(days=1) aes_key = os.urandom(32) aes_iv = os.urandom(16) hostname = "localhost" alias = ["localhost.custom"] fernet_token = create_peer_config( valid.timestamp(), hostname, aes_key, aes_iv, alias=alias, ) > worker.start() tests/server/test_worker.py:116: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.14/multiprocessing/process.py:121: in start self._popen = self._Popen(self) ^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/multiprocessing/context.py:224: in _Popen return _default_context.get_context().Process._Popen(process_obj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/multiprocessing/context.py:300: in _Popen return Popen(process_obj) ^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/multiprocessing/popen_forkserver.py:35: in __init__ super().__init__(process_obj) /usr/lib/python3.14/multiprocessing/popen_fork.py:20: in __init__ self._launch(process_obj) /usr/lib/python3.14/multiprocessing/popen_forkserver.py:47: in _launch reduction.dump(process_obj, buf) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ obj = <ServerWorker name='ServerWorker-37' parent=91 initial> file = <_io.BytesIO object at 0x7f6c64f0cd60>, protocol = None def dump(obj, file, protocol=None): '''Replacement for pickle.dump() using ForkingPickler.''' > ForkingPickler(file, protocol).dump(obj) E TypeError: cannot pickle 'weakref.ReferenceType' object E when serializing dict item '_weakref' E when serializing multiprocessing.util.Finalize state E when serializing multiprocessing.util.Finalize object E when serializing dict item 'finalizer' E when serializing multiprocessing.popen_forkserver.Popen state E when serializing multiprocessing.popen_forkserver.Popen object E when serializing dict item '_popen' E when serializing multiprocessing.context.ForkServerProcess state E when serializing multiprocessing.context.ForkServerProcess object E when serializing dict item '_process' E when serializing multiprocessing.managers.SyncManager state E when serializing multiprocessing.managers.SyncManager object E when serializing dict item '_manager' E when serializing snitun.server.worker.ServerWorker state E when serializing snitun.server.worker.ServerWorker object /usr/lib/python3.14/multiprocessing/reduction.py:60: TypeError ---------------------------- Captured stderr setup ----------------------------- DEBUG:asyncio:Using selector: EpollSelector ------------------------------ Captured log setup ------------------------------ DEBUG asyncio:selector_events.py:64 Using selector: EpollSelector =========================== short test summary info ============================ FAILED tests/server/test_run.py::test_snitun_worker_runner_updown - TypeError... FAILED tests/server/test_run.py::test_snitun_worker_runner[payloads0] - TypeE... FAILED tests/server/test_run.py::test_snitun_worker_runner[payloads1] - TypeE... FAILED tests/server/test_run.py::test_snitun_worker_runner[payloads2] - TypeE... FAILED tests/server/test_run.py::test_snitun_worker_runner[payloads3] - TypeE... FAILED tests/server/test_run.py::test_snitun_worker_timeout - TypeError: cann... FAILED tests/server/test_run.py::test_snitun_worker_runner_invalid_payload - ... FAILED tests/server/test_run.py::test_snitun_worker_crash - TypeError: cannot... FAILED tests/server/test_worker.py::test_worker_up_down - TypeError: cannot p... FAILED tests/server/test_worker.py::test_peer_connection - TypeError: cannot ... FAILED tests/server/test_worker.py::test_peer_connection_disconnect - TypeErr... FAILED tests/server/test_worker.py::test_sni_connection - TypeError: cannot p... ======================= 12 failed, 169 passed in 19.07s ======================== E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14/build; python3.14 -m pytest --ignore=tests/benchmarks I: pybuild base:317: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build; python3.13 -m pytest --ignore=tests/benchmarks ============================= test session starts ============================== platform linux -- Python 3.13.11, pytest-9.0.2, pluggy-1.6.0 rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build configfile: pyproject.toml plugins: aiohttp-1.1.0, timeout-2.4.0, asyncio-1.2.0, typeguard-4.4.4 asyncio: mode=Mode.AUTO, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function collected 181 items tests/client/test_client_peer.py ............ [ 6%] tests/client/test_connector.py ......... [ 11%] tests/metrics/test_auth_metrics.py .... [ 13%] tests/metrics/test_factory.py . [ 14%] tests/metrics/test_noop.py .. [ 15%] tests/metrics/test_worker_integration.py ....... [ 19%] tests/multiplexer/test_channel.py ............... [ 27%] tests/multiplexer/test_const.py . [ 28%] tests/multiplexer/test_core.py ......................... [ 41%] tests/multiplexer/test_crypto.py . [ 42%] tests/multiplexer/test_message.py ... [ 44%] tests/multiplexer/test_queue.py ....................... [ 56%] tests/server/test_all.py . [ 57%] tests/server/test_listener_peer.py ...... [ 60%] tests/server/test_listener_sni.py ............ [ 67%] tests/server/test_peer.py ...... [ 70%] tests/server/test_peer_manager.py .......... [ 76%] tests/server/test_run.py .............. [ 83%] tests/server/test_sni.py .......... [ 89%] tests/server/test_worker.py .... [ 91%] tests/utils/test_aes.py .. [ 92%] tests/utils/test_aiohttp_client.py ... [ 94%] tests/utils/test_asyncio.py ...... [ 97%] tests/utils/test_ipaddress.py .. [ 98%] tests/utils/test_server.py .. [100%] =============================== warnings summary =============================== tests/server/test_run.py: 24 warnings tests/server/test_worker.py: 8 warnings /usr/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=344) is multi-threaded, use of fork() may lead to deadlocks in the child. self.pid = os.fork() -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html ====================== 181 passed, 32 warnings in 41.54s ======================= dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.14 3.13" returned exit code 13 make: *** [debian/rules:5: binary] Error 25 dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 --------------------------------------------------------------------------------

