Package: src:python-throttler Version: 1.2.2-4 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-throttler, 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 pybuild --clean -i python{version} -p "3.14 3.13" I: pybuild base:317: python3.14 setup.py clean /<<PKGBUILDDIR>>/setup.py:6: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html from pkg_resources import parse_requirements /usr/lib/python3/dist-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: MIT License [... snipped ...] def test_via_service(self, rate_limit: int, period: float, count: int): s = Service(rate_limit, period) @throttle(rate_limit, period) async def request(value: float): return await s.get(value) > main = asyncio.gather(*[request(v) for v in range(count)]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/test_throttler.py:31: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.14/asyncio/tasks.py:876: in gather fut = ensure_future(arg, loop=loop) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/asyncio/tasks.py:730: in ensure_future loop = events.get_event_loop() ^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <asyncio.unix_events._UnixDefaultEventLoopPolicy object at 0x7ffb9d5b2f90> def get_event_loop(self): """Get the event loop for the current context. Returns an instance of EventLoop or raises an exception. """ if self._local._loop is None: > raise RuntimeError('There is no current event loop in thread %r.' % threading.current_thread().name) E RuntimeError: There is no current event loop in thread 'MainThread'. /usr/lib/python3.14/asyncio/events.py:715: RuntimeError ________________ TestThrottler.test_via_service[1000-1.5-1000] _________________ self = <tests.test_throttler.TestThrottler object at 0x7ffb9d43b340> rate_limit = 1000, period = 1.5, count = 1000 @pytest.mark.parametrize( ('rate_limit', 'period', 'count'), tuple(product((1, 3, 5), (0.5, 1.0, 1.5), (3, 5, 7))) + tuple(product((100, 1000), (0.5, 1.0, 1.5), (10, 1000))) ) def test_via_service(self, rate_limit: int, period: float, count: int): s = Service(rate_limit, period) @throttle(rate_limit, period) async def request(value: float): return await s.get(value) > main = asyncio.gather(*[request(v) for v in range(count)]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/test_throttler.py:31: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.14/asyncio/tasks.py:876: in gather fut = ensure_future(arg, loop=loop) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/asyncio/tasks.py:730: in ensure_future loop = events.get_event_loop() ^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <asyncio.unix_events._UnixDefaultEventLoopPolicy object at 0x7ffb9d5b2f90> def get_event_loop(self): """Get the event loop for the current context. Returns an instance of EventLoop or raises an exception. """ if self._local._loop is None: > raise RuntimeError('There is no current event loop in thread %r.' % threading.current_thread().name) E RuntimeError: There is no current event loop in thread 'MainThread'. /usr/lib/python3.14/asyncio/events.py:715: RuntimeError ________ TestThrottlerSimultaneous.test_via_service_simultaneous[1-10] _________ self = <tests.test_throttler_simultaneous.TestThrottlerSimultaneous object at 0x7ffb9d431090> max_simultaneous = 1, count = 10 @pytest.mark.parametrize( ('max_simultaneous', 'count'), ((1, 10), (3, 10), (100, 500)) ) def test_via_service_simultaneous(self, max_simultaneous: int, count: int): s = ServiceSimultaneous(max_simultaneous) @throttle_simultaneous(max_simultaneous) async def request(value: float): return await s.get(value) > main = asyncio.gather(*[request(v) for v in range(count)]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/test_throttler_simultaneous.py:20: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.14/asyncio/tasks.py:876: in gather fut = ensure_future(arg, loop=loop) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/asyncio/tasks.py:730: in ensure_future loop = events.get_event_loop() ^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <asyncio.unix_events._UnixDefaultEventLoopPolicy object at 0x7ffb9d5b2f90> def get_event_loop(self): """Get the event loop for the current context. Returns an instance of EventLoop or raises an exception. """ if self._local._loop is None: > raise RuntimeError('There is no current event loop in thread %r.' % threading.current_thread().name) E RuntimeError: There is no current event loop in thread 'MainThread'. /usr/lib/python3.14/asyncio/events.py:715: RuntimeError ________ TestThrottlerSimultaneous.test_via_service_simultaneous[3-10] _________ self = <tests.test_throttler_simultaneous.TestThrottlerSimultaneous object at 0x7ffb9d430f50> max_simultaneous = 3, count = 10 @pytest.mark.parametrize( ('max_simultaneous', 'count'), ((1, 10), (3, 10), (100, 500)) ) def test_via_service_simultaneous(self, max_simultaneous: int, count: int): s = ServiceSimultaneous(max_simultaneous) @throttle_simultaneous(max_simultaneous) async def request(value: float): return await s.get(value) > main = asyncio.gather(*[request(v) for v in range(count)]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/test_throttler_simultaneous.py:20: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.14/asyncio/tasks.py:876: in gather fut = ensure_future(arg, loop=loop) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/asyncio/tasks.py:730: in ensure_future loop = events.get_event_loop() ^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <asyncio.unix_events._UnixDefaultEventLoopPolicy object at 0x7ffb9d5b2f90> def get_event_loop(self): """Get the event loop for the current context. Returns an instance of EventLoop or raises an exception. """ if self._local._loop is None: > raise RuntimeError('There is no current event loop in thread %r.' % threading.current_thread().name) E RuntimeError: There is no current event loop in thread 'MainThread'. /usr/lib/python3.14/asyncio/events.py:715: RuntimeError _______ TestThrottlerSimultaneous.test_via_service_simultaneous[100-500] _______ self = <tests.test_throttler_simultaneous.TestThrottlerSimultaneous object at 0x7ffb9d408770> max_simultaneous = 100, count = 500 @pytest.mark.parametrize( ('max_simultaneous', 'count'), ((1, 10), (3, 10), (100, 500)) ) def test_via_service_simultaneous(self, max_simultaneous: int, count: int): s = ServiceSimultaneous(max_simultaneous) @throttle_simultaneous(max_simultaneous) async def request(value: float): return await s.get(value) > main = asyncio.gather(*[request(v) for v in range(count)]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/test_throttler_simultaneous.py:20: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.14/asyncio/tasks.py:876: in gather fut = ensure_future(arg, loop=loop) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/asyncio/tasks.py:730: in ensure_future loop = events.get_event_loop() ^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <asyncio.unix_events._UnixDefaultEventLoopPolicy object at 0x7ffb9d5b2f90> def get_event_loop(self): """Get the event loop for the current context. Returns an instance of EventLoop or raises an exception. """ if self._local._loop is None: > raise RuntimeError('There is no current event loop in thread %r.' % threading.current_thread().name) E RuntimeError: There is no current event loop in thread 'MainThread'. /usr/lib/python3.14/asyncio/events.py:715: RuntimeError =============================== warnings summary =============================== .pybuild/cpython3_3.14_throttler/build/tests/test_throttler.py::TestThrottler::test_via_service[100-0.5-1000] /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_throttler/build/tests/test_throttler.py:31: RuntimeWarning: coroutine 'TestThrottler.test_via_service.<locals>.request' was never awaited main = asyncio.gather(*[request(v) for v in range(count)]) Enable tracemalloc to get traceback where the object was allocated. See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ FAILED tests/test_service.py::TestService::test_service[1-0.5] - RuntimeError... FAILED tests/test_service.py::TestService::test_service[3-1.0] - RuntimeError... FAILED tests/test_service.py::TestService::test_service[100-1.5] - RuntimeErr... FAILED tests/test_service.py::TestService::test_service_simultaneous[1] - Run... FAILED tests/test_service.py::TestService::test_service_simultaneous[3] - Run... FAILED tests/test_service.py::TestService::test_service_simultaneous[100] - R... FAILED tests/test_throttler.py::TestThrottler::test_via_service[1-0.5-3] - Ru... FAILED tests/test_throttler.py::TestThrottler::test_via_service[1-0.5-5] - Ru... FAILED tests/test_throttler.py::TestThrottler::test_via_service[1-0.5-7] - Ru... FAILED tests/test_throttler.py::TestThrottler::test_via_service[1-1.0-3] - Ru... FAILED tests/test_throttler.py::TestThrottler::test_via_service[1-1.0-5] - Ru... FAILED tests/test_throttler.py::TestThrottler::test_via_service[1-1.0-7] - Ru... FAILED tests/test_throttler.py::TestThrottler::test_via_service[1-1.5-3] - Ru... FAILED tests/test_throttler.py::TestThrottler::test_via_service[1-1.5-5] - Ru... FAILED tests/test_throttler.py::TestThrottler::test_via_service[1-1.5-7] - Ru... FAILED tests/test_throttler.py::TestThrottler::test_via_service[3-0.5-3] - Ru... FAILED tests/test_throttler.py::TestThrottler::test_via_service[3-0.5-5] - Ru... FAILED tests/test_throttler.py::TestThrottler::test_via_service[3-0.5-7] - Ru... FAILED tests/test_throttler.py::TestThrottler::test_via_service[3-1.0-3] - Ru... FAILED tests/test_throttler.py::TestThrottler::test_via_service[3-1.0-5] - Ru... FAILED tests/test_throttler.py::TestThrottler::test_via_service[3-1.0-7] - Ru... FAILED tests/test_throttler.py::TestThrottler::test_via_service[3-1.5-3] - Ru... FAILED tests/test_throttler.py::TestThrottler::test_via_service[3-1.5-5] - Ru... FAILED tests/test_throttler.py::TestThrottler::test_via_service[3-1.5-7] - Ru... FAILED tests/test_throttler.py::TestThrottler::test_via_service[5-0.5-3] - Ru... FAILED tests/test_throttler.py::TestThrottler::test_via_service[5-0.5-5] - Ru... FAILED tests/test_throttler.py::TestThrottler::test_via_service[5-0.5-7] - Ru... FAILED tests/test_throttler.py::TestThrottler::test_via_service[5-1.0-3] - Ru... FAILED tests/test_throttler.py::TestThrottler::test_via_service[5-1.0-5] - Ru... FAILED tests/test_throttler.py::TestThrottler::test_via_service[5-1.0-7] - Ru... FAILED tests/test_throttler.py::TestThrottler::test_via_service[5-1.5-3] - Ru... FAILED tests/test_throttler.py::TestThrottler::test_via_service[5-1.5-5] - Ru... FAILED tests/test_throttler.py::TestThrottler::test_via_service[5-1.5-7] - Ru... FAILED tests/test_throttler.py::TestThrottler::test_via_service[100-0.5-10] FAILED tests/test_throttler.py::TestThrottler::test_via_service[100-0.5-1000] FAILED tests/test_throttler.py::TestThrottler::test_via_service[100-1.0-10] FAILED tests/test_throttler.py::TestThrottler::test_via_service[100-1.0-1000] FAILED tests/test_throttler.py::TestThrottler::test_via_service[100-1.5-10] FAILED tests/test_throttler.py::TestThrottler::test_via_service[100-1.5-1000] FAILED tests/test_throttler.py::TestThrottler::test_via_service[1000-0.5-10] FAILED tests/test_throttler.py::TestThrottler::test_via_service[1000-0.5-1000] FAILED tests/test_throttler.py::TestThrottler::test_via_service[1000-1.0-10] FAILED tests/test_throttler.py::TestThrottler::test_via_service[1000-1.0-1000] FAILED tests/test_throttler.py::TestThrottler::test_via_service[1000-1.5-10] FAILED tests/test_throttler.py::TestThrottler::test_via_service[1000-1.5-1000] FAILED tests/test_throttler_simultaneous.py::TestThrottlerSimultaneous::test_via_service_simultaneous[1-10] FAILED tests/test_throttler_simultaneous.py::TestThrottlerSimultaneous::test_via_service_simultaneous[3-10] FAILED tests/test_throttler_simultaneous.py::TestThrottlerSimultaneous::test_via_service_simultaneous[100-500] ================== 48 failed, 32 passed, 1 warning in 42.98s =================== E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_throttler/build; python3.14 -m pytest tests I: pybuild base:317: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_throttler/build; python3.13 -m pytest tests ============================= test session starts ============================== platform linux -- Python 3.13.11, pytest-9.0.2, pluggy-1.6.0 rootdir: /<<PKGBUILDDIR>> plugins: asyncio-1.2.0, typeguard-4.4.4 asyncio: mode=Mode.STRICT, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function collected 80 items tests/test_execution_timer.py ........ [ 10%] tests/test_service.py ...... [ 17%] tests/test_throttler.py ................................................ [ 77%] ........... [ 91%] tests/test_throttler_simultaneous.py ... [ 95%] tests/test_timer.py .... [100%] ======================== 80 passed in 118.32s (0:01:58) ======================== rm -fr -- /tmp/dh-xdg-rundir-FX8aOEdB dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.14 3.13" returned exit code 13 make: *** [debian/rules:7: binary] Error 25 dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 --------------------------------------------------------------------------------

