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
/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)
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}"
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)