Package: src:amqtt Version: 0.11.4-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/202608/ 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:amqtt, 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:142: Building wheel for python3.13 with "build" module I: pybuild base:385: python3.13 -m build --skip-dependency-check --no-isolation --wheel --outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13 * Building wheel... Successfully built amqtt-0.11.4-py3-none-any.whl [... snipped ...] raise TypeError('ssl argument must be an SSLContext or None') if ssl_handshake_timeout is not None and ssl is None: raise ValueError( 'ssl_handshake_timeout is only meaningful with ssl') if ssl_shutdown_timeout is not None and ssl is None: raise ValueError( 'ssl_shutdown_timeout is only meaningful with ssl') if sock is not None: _check_ssl_socket(sock) if host is not None or port is not None: if sock is not None: raise ValueError( 'host/port and sock can not be specified at the same time') if reuse_address is None: reuse_address = os.name == "posix" and sys.platform != "cygwin" sockets = [] if host == '': hosts = [None] elif (isinstance(host, str) or not isinstance(host, collections.abc.Iterable)): hosts = [host] else: hosts = host fs = [self._create_server_getaddrinfo(host, port, family=family, flags=flags) for host in hosts] infos = await tasks.gather(*fs) infos = set(itertools.chain.from_iterable(infos)) completed = False try: for res in infos: af, socktype, proto, canonname, sa = res try: sock = socket.socket(af, socktype, proto) except socket.error: # Assume it's a bad family/type/protocol combination. if self._debug: logger.warning('create_server() failed to create ' 'socket.socket(%r, %r, %r)', af, socktype, proto, exc_info=True) continue sockets.append(sock) if reuse_address: sock.setsockopt( socket.SOL_SOCKET, socket.SO_REUSEADDR, True) # Since Linux 6.12.9, SO_REUSEPORT is not allowed # on other address families than AF_INET/AF_INET6. if reuse_port and af in (socket.AF_INET, socket.AF_INET6): _set_reuseport(sock) if keep_alive: sock.setsockopt( socket.SOL_SOCKET, socket.SO_KEEPALIVE, True) # Disable IPv4/IPv6 dual stack support (enabled by # default on Linux) which makes a single socket # listen on both address families. if (_HAS_IPv6 and af == socket.AF_INET6 and hasattr(socket, 'IPPROTO_IPV6')): sock.setsockopt(socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, True) try: sock.bind(sa) except OSError as err: msg = ('error while attempting ' 'to bind on address %r: %s' % (sa, str(err).lower())) if err.errno == errno.EADDRNOTAVAIL: # Assume the family is not enabled (bpo-30945) sockets.pop() sock.close() if self._debug: logger.warning(msg) continue > raise OSError(err.errno, msg) from None E OSError: [Errno 98] error while attempting to bind on address ('127.0.0.1', 1883): [errno 98] address already in use /usr/lib/python3.14/asyncio/base_events.py:1637: OSError The above exception was the direct cause of the following exception: caplog = <_pytest.logging.LogCaptureFixture object at 0x7fa0c80a38c0> session_broker_config = BrokerConfig(listeners={'default': ListenerConfig(type="tcp", bind='127.0.0.1:1883', max_connections=0, ssl=False, caf..., auth=None, topic_check=None, plugins={'amqtt.plugins.authentication.AnonymousAuthPlugin': {'allow_anonymous': True}}) username = '', clean_session = False, session_count = 0, expiration = None @pytest.mark.parametrize("username,clean_session,expiration,session_count", [ # session expiration disabled ("", True, None, 0), # anonymous and clean session ("", False, None, 0), # anonymous ("myuser@", True, None, 0), # named user, clean session ("myuser@", False, None, 1), # named user # session expiration enabled ("myuser@", False, 1, 0), # named user, quick expiration ("myuser@", False, 20, 1), # named user, long expiration ]) @pytest.mark.asyncio async def test_clear_session_expiration(caplog, session_broker_config, username, clean_session, session_count, expiration): caplog.set_level(logging.DEBUG) session_broker_config.session_expiry_interval = expiration session_broker_config.plugins = {'amqtt.plugins.authentication.AnonymousAuthPlugin': {'allow_anonymous': username == ""}} broker = Broker(config=session_broker_config) > await broker.start() tests/test_session_monitor.py:44: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <amqtt.broker.Broker object at 0x7fa0c42c6c30> async def start(self) -> None: """Start the broker to serve with the given configuration. Start method opens network sockets and will start listening for incoming connections. """ try: self._sessions.clear() self._subscriptions.clear() self._retained_messages.clear() self.transitions.start() self.logger.debug("Broker starting") except (MachineError, ValueError) as exc: # Backwards compat: MachineError is raised by transitions < 0.5.0. self.logger.warning(f"[WARN-0001] Invalid method call at this moment: {exc}") msg = f"Broker instance can't be started: {exc}" raise BrokerError(msg) from exc await self.plugins_manager.fire_event(BrokerEvents.PRE_START) try: await self._start_listeners() self.transitions.starting_success() await self.plugins_manager.fire_event(BrokerEvents.POST_START) self._broadcast_task = asyncio.ensure_future(self._broadcast_loop()) self._session_monitor_task = asyncio.create_task(self._session_monitor()) self.logger.debug("Broker started") except Exception as e: self.logger.exception("Broker startup failed") self.transitions.starting_fail() msg = f"Broker instance can't be started: {e}" > raise BrokerError(msg) from e E amqtt.errors.BrokerError: Broker instance can't be started: [Errno 98] error while attempting to bind on address ('127.0.0.1', 1883): [errno 98] address already in use amqtt/broker.py:265: BrokerError ---------------------------- Captured stdout setup ----------------------------- [2026-08-01 20:57:14,167] DEBUG asyncio: Using selector: EpollSelector ------------------------------ Captured log setup ------------------------------ DEBUG asyncio:selector_events.py:64 Using selector: EpollSelector ----------------------------- Captured stdout call ----------------------------- [2026-08-01 20:57:14,168] INFO amqtt.broker.plugins: Loading plugins from config [2026-08-01 20:57:14,168] DEBUG amqtt.broker.plugins: Loading plugin amqtt.plugins.authentication.AnonymousAuthPlugin [2026-08-01 20:57:14,168] DEBUG amqtt.broker: State transition: new [2026-08-01 20:57:14,168] DEBUG amqtt.broker: Broker starting [2026-08-01 20:57:14,168] ERROR amqtt.broker: Broker startup failed Traceback (most recent call last): File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14/build/amqtt/broker.py", line 255, in start await self._start_listeners() File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14/build/amqtt/broker.py", line 291, in _start_listeners instance = await self._create_server_instance(listener_name, listener.type, address, port, ssl_context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14/build/amqtt/broker.py", line 327, in _create_server_instance return await asyncio.start_server( ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...<5 lines>... ) ^ File "/usr/lib/python3.14/asyncio/streams.py", line 84, in start_server return await loop.create_server(factory, host, port, **kwds) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.14/asyncio/base_events.py", line 1637, in create_server raise OSError(err.errno, msg) from None OSError: [Errno 98] error while attempting to bind on address ('127.0.0.1', 1883): [errno 98] address already in use ------------------------------ Captured log call ------------------------------- INFO amqtt.broker.plugins:manager.py:203 Loading plugins from config DEBUG amqtt.broker.plugins:manager.py:252 Loading plugin amqtt.plugins.authentication.AnonymousAuthPlugin DEBUG amqtt.broker:broker.py:234 State transition: new DEBUG amqtt.broker:broker.py:246 Broker starting ERROR amqtt.broker:broker.py:262 Broker startup failed Traceback (most recent call last): File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14/build/amqtt/broker.py", line 255, in start await self._start_listeners() File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14/build/amqtt/broker.py", line 291, in _start_listeners instance = await self._create_server_instance(listener_name, listener.type, address, port, ssl_context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14/build/amqtt/broker.py", line 327, in _create_server_instance return await asyncio.start_server( ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...<5 lines>... ) ^ File "/usr/lib/python3.14/asyncio/streams.py", line 84, in start_server return await loop.create_server(factory, host, port, **kwds) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.14/asyncio/base_events.py", line 1637, in create_server raise OSError(err.errno, msg) from None OSError: [Errno 98] error while attempting to bind on address ('127.0.0.1', 1883): [errno 98] address already in use =============================== warnings summary =============================== ../../../../../../usr/lib/python3/dist-packages/_pytest/config/__init__.py:885 /usr/lib/python3/dist-packages/_pytest/config/__init__.py:885: PytestAssertRewriteWarning: Module already imported so cannot be rewritten; pytest_logdog self.import_plugin(import_spec) .pybuild/cpython3_3.14/build/tests/contrib/test_cert.py::test_client_broker_cert_authentication <string>:18: UserWarning: The 'broker' option is deprecated, please use 'connection' instead. .pybuild/cpython3_3.14/build/tests/mqtt/protocol/test_handler.py: 10 warnings /usr/lib/python3.14/unittest/case.py:612: DeprecationWarning: Loading plugins from EntryPoints is deprecated and will be removed in a future version. Use `plugins` section of config instead. self.setUp() .pybuild/cpython3_3.14/build/tests/plugins/test_manager.py::TestPluginManager::test_fire_event .pybuild/cpython3_3.14/build/tests/plugins/test_manager.py::TestPluginManager::test_fire_event_wait .pybuild/cpython3_3.14/build/tests/plugins/test_manager.py::TestPluginManager::test_load_plugin .pybuild/cpython3_3.14/build/tests/plugins/test_manager.py::TestPluginManager::test_plugin_auth_coro .pybuild/cpython3_3.14/build/tests/plugins/test_manager.py::TestPluginManager::test_plugin_close_coro .pybuild/cpython3_3.14/build/tests/plugins/test_manager.py::TestPluginManager::test_plugin_topic_coro /usr/lib/python3.14/unittest/case.py:615: DeprecationWarning: Loading plugins from EntryPoints is deprecated and will be removed in a future version. Use `plugins` section of config instead. result = method() .pybuild/cpython3_3.14/build/tests/plugins/test_plugins.py::test_plugins_correct_has_attr /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14/build/amqtt/plugins/persistence.py:11: UserWarning: SQLitePlugin is deprecated, use amqtt.contrib.persistence.SessionDBPlugin warnings.warn("SQLitePlugin is deprecated, use amqtt.contrib.persistence.SessionDBPlugin", stacklevel=1) .pybuild/cpython3_3.14/build/tests/plugins/test_topic_checking.py: 10 warnings .pybuild/cpython3_3.14/build/tests/test_broker.py: 3 warnings .pybuild/cpython3_3.14/build/tests/test_samples.py: 1 warning /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14/build/amqtt/plugins/topic_checking.py:33: UserWarning: The 'acl' option is deprecated, please use 'subscribe-acl' instead. warnings.warn("The 'acl' option is deprecated, please use 'subscribe-acl' instead.", stacklevel=1) .pybuild/cpython3_3.14/build/tests/test_broker.py::test_client_publish_acl_permitted .pybuild/cpython3_3.14/build/tests/test_broker.py::test_client_publish_acl_forbidden .pybuild/cpython3_3.14/build/tests/test_broker.py::test_client_publish_acl_permitted_sub_forbidden /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14/build/tests/conftest.py:128: DeprecationWarning: Loading plugins from EntryPoints is deprecated and will be removed in a future version. Use `plugins` section of config instead. broker = Broker( .pybuild/cpython3_3.14/build/tests/test_broker.py::test_broker_with_legacy_config /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14/build/tests/test_broker.py:1088: DeprecationWarning: Loading plugins from EntryPoints is deprecated and will be removed in a future version. Use `plugins` section of config instead. broker = Broker(config=std_legacy_config) .pybuild/cpython3_3.14/build/tests/test_broker.py::test_broker_without_auth_plugin[test_config0] /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14/build/tests/test_broker.py:1125: DeprecationWarning: Loading plugins from EntryPoints is deprecated and will be removed in a future version. Use `plugins` section of config instead. broker = Broker(config=test_config) .pybuild/cpython3_3.14/build/tests/test_broker.py::test_broker_with_absent_auth_plugin_filter /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14/build/tests/test_broker.py:1153: DeprecationWarning: Loading plugins from EntryPoints is deprecated and will be removed in a future version. Use `plugins` section of config instead. broker = Broker(config=legacy_config_with_absent_auth_plugin_filter) .pybuild/cpython3_3.14/build/tests/test_samples.py::test_client_publish_ssl /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14/build/tests/test_samples.py:144: DeprecationWarning: Loading plugins from EntryPoints is deprecated and will be removed in a future version. Use `plugins` section of config instead. broker = Broker(config=broker_ssl_config) .pybuild/cpython3_3.14/build/tests/test_samples.py::test_client_publish_ws /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14/build/tests/test_samples.py:194: DeprecationWarning: Loading plugins from EntryPoints is deprecated and will be removed in a future version. Use `plugins` section of config instead. broker = Broker(config=broker_ws_config) .pybuild/cpython3_3.14/build/tests/test_samples.py::test_client_subscribe /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14/build/tests/test_samples.py:229: DeprecationWarning: Loading plugins from EntryPoints is deprecated and will be removed in a future version. Use `plugins` section of config instead. broker = Broker(config=broker_std_config) -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ FAILED tests/contrib/test_db_scripts.py::test_cli_mgr_no_params[app0-user cli] FAILED tests/contrib/test_db_scripts.py::test_cli_mgr_no_params[app1-topic cli] FAILED tests/test_samples.py::test_client_subscribe_plugin_acl - assert 'Subs... FAILED tests/test_samples.py::test_client_subscribe_plugin_taboo - amqtt.erro... FAILED tests/test_session_monitor.py::test_clear_session_expiration[-True-None-0] FAILED tests/test_session_monitor.py::test_clear_session_expiration[-False-None-0] ===== 6 failed, 507 passed, 6 deselected, 42 warnings in 187.69s (0:03:07) ===== E: pybuild pybuild:485: test: plugin pyproject failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14/build; python3.14 -m pytest --no-cov -k " not test_external_http_server and not test_broker_sys_plugin_config and not test_connect_ws and not test_reconnect_ws_retain_username_password and not test_broker_sys_plugin_deprecated_config" dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.13 3.14" --parallel=2 returned exit code 13 make: *** [debian/rules:10: binary] Error 25 dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2 --------------------------------------------------------------------------------

