Source: pyrate-limiter Version: 3.9.0-1 Severity: serious Justification: FTBFS Tags: forky sid ftbfs User: [email protected] Usertags: ftbfs-20250919 ftbfs-forky
Hi, During a rebuild of all packages in sid, your package failed to build on amd64. The full build log is available from: http://qa-logs.debian.net/2025/09/19/pyrate-limiter_3.9.0-1_unstable.log All bugs filed during this archive rebuild are listed at: https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20250919;[email protected] or: https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20250919&[email protected]&allbugs=1&cseverity=1&ctags=1&caffected=1#results A list of current common problems and possible solutions is available at http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute! If you reassign this bug to another package, please mark it as 'affects'-ing this package. See https://www.debian.org/Bugs/server-control#affects If you fail to reproduce this, please provide a build log and diff it with mine so that we can identify if something relevant changed in the meantime. -- Relevant part of the build log (hopefully): > make[1]: Entering directory '/build/reproducible-path/pyrate-limiter-3.9.0' > dh_auto_build override_dh_auto_build --buildsystem=pybuild > I: pybuild plugin_pyproject:129: Building wheel for python3.13 with "build" > module > I: pybuild base:311: python3.13 -m build --skip-dependency-check > --no-isolation --wheel --outdir > /build/reproducible-path/pyrate-limiter-3.9.0/.pybuild/cpython3_3.13 > * Building wheel... > Successfully built pyrate_limiter-3.9.0-py3-none-any.whl > I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.13 with > "installer" module > cd docs; PYTHONPATH=/build/reproducible-path/pyrate-limiter-3.9.0 > LC_ALL=C.UTF-8 LANGUAGE=C.UTF-8 sphinx-build -bhtml -d _build/doctrees . > _build/html > Running Sphinx v8.2.3 > loading translations [en]... done > WARNING: while setting up extension sphinxcontrib.apidoc: Failed to convert > [[<class 'str'>]] to a frozenset > making output directory... done > Converting `source_suffix = ['.rst', '.md']` to `source_suffix = {'.rst': > 'restructuredtext', '.md': 'restructuredtext'}`. > [autosummary] generating autosummary for: changelog.md, contributing.md, > index.md, reference.md > loading intersphinx inventory 'python' from > https://docs.python.org/3/objects.inv ... > WARNING: failed to reach any of the inventories with the following issues: > intersphinx inventory 'https://docs.python.org/3/objects.inv' not fetchable > due to <class 'requests.exceptions.ConnectionError'>: > HTTPSConnectionPool(host='docs.python.org', port=443): Max retries exceeded > with url: /3/objects.inv (Caused by > NameResolutionError("<urllib3.connection.HTTPSConnection object at > 0x7f4b96584440>: Failed to resolve 'docs.python.org' ([Errno -3] Temporary > failure in name resolution)")) > Creating file > /build/reproducible-path/pyrate-limiter-3.9.0/docs/modules/pyrate_limiter.rst. > Creating file > /build/reproducible-path/pyrate-limiter-3.9.0/docs/modules/pyrate_limiter.clocks.rst. > Creating file > /build/reproducible-path/pyrate-limiter-3.9.0/docs/modules/pyrate_limiter.exceptions.rst. > Creating file > /build/reproducible-path/pyrate-limiter-3.9.0/docs/modules/pyrate_limiter.limiter.rst. > Creating file > /build/reproducible-path/pyrate-limiter-3.9.0/docs/modules/pyrate_limiter.limiter_factory.rst. > Creating file > /build/reproducible-path/pyrate-limiter-3.9.0/docs/modules/pyrate_limiter.utils.rst. > Creating file > /build/reproducible-path/pyrate-limiter-3.9.0/docs/modules/pyrate_limiter.abstracts.rst. > Creating file > /build/reproducible-path/pyrate-limiter-3.9.0/docs/modules/pyrate_limiter.abstracts.bucket.rst. > Creating file > /build/reproducible-path/pyrate-limiter-3.9.0/docs/modules/pyrate_limiter.abstracts.clock.rst. > Creating file > /build/reproducible-path/pyrate-limiter-3.9.0/docs/modules/pyrate_limiter.abstracts.rate.rst. > Creating file > /build/reproducible-path/pyrate-limiter-3.9.0/docs/modules/pyrate_limiter.abstracts.wrappers.rst. > Creating file > /build/reproducible-path/pyrate-limiter-3.9.0/docs/modules/pyrate_limiter.buckets.rst. > Creating file > /build/reproducible-path/pyrate-limiter-3.9.0/docs/modules/pyrate_limiter.buckets.in_memory_bucket.rst. > Creating file > /build/reproducible-path/pyrate-limiter-3.9.0/docs/modules/pyrate_limiter.buckets.mp_bucket.rst. > Creating file > /build/reproducible-path/pyrate-limiter-3.9.0/docs/modules/pyrate_limiter.buckets.postgres.rst. > Creating file > /build/reproducible-path/pyrate-limiter-3.9.0/docs/modules/pyrate_limiter.buckets.redis_bucket.rst. > Creating file > /build/reproducible-path/pyrate-limiter-3.9.0/docs/modules/pyrate_limiter.buckets.sqlite_bucket.rst. > myst v4.0.1: MdParserConfig(commonmark_only=False, gfm_only=False, > enable_extensions={'html_image'}, disable_syntax=[], > all_links_external=False, links_external_new_tab=False, url_schemes=('http', > 'https', 'mailto', 'ftp'), ref_domains=None, fence_as_directive=set(), > number_code_blocks=[], title_to_header=False, heading_anchors=0, > heading_slug_func=None, html_meta={}, footnote_sort=True, > footnote_transition=True, words_per_minute=200, substitutions={}, > linkify_fuzzy_links=True, dmath_allow_labels=True, dmath_allow_space=True, > dmath_allow_digits=True, dmath_double_inline=False, update_mathjax=True, > mathjax_classes='tex2jax_process|mathjax_process|math|output_area', > enable_checkboxes=False, suppress_warnings=[], highlight_code_blocks=True) > building [mo]: targets for 0 po files that are out of date > writing output... > building [html]: targets for 4 source files that are out of date > updating environment: [new config] 21 added, 0 changed, 0 removed > reading sources... [ 5%] changelog > reading sources... [ 10%] contributing > reading sources... [ 14%] index > reading sources... [ 19%] modules/pyrate_limiter > reading sources... [ 24%] modules/pyrate_limiter.abstracts > reading sources... [ 29%] modules/pyrate_limiter.abstracts.bucket > reading sources... [ 33%] modules/pyrate_limiter.abstracts.clock > reading sources... [ 38%] modules/pyrate_limiter.abstracts.rate > reading sources... [ 43%] modules/pyrate_limiter.abstracts.wrappers > reading sources... [ 48%] modules/pyrate_limiter.buckets > reading sources... [ 52%] modules/pyrate_limiter.buckets.in_memory_bucket > reading sources... [ 57%] modules/pyrate_limiter.buckets.mp_bucket > reading sources... [ 62%] modules/pyrate_limiter.buckets.postgres > reading sources... [ 67%] modules/pyrate_limiter.buckets.redis_bucket > reading sources... [ 71%] modules/pyrate_limiter.buckets.sqlite_bucket > reading sources... [ 76%] modules/pyrate_limiter.clocks > reading sources... [ 81%] modules/pyrate_limiter.exceptions > reading sources... [ 86%] modules/pyrate_limiter.limiter > reading sources... [ 90%] modules/pyrate_limiter.limiter_factory > reading sources... [ 95%] modules/pyrate_limiter.utils > reading sources... [100%] reference > > looking for now-outdated files... none found > pickling environment... done > checking consistency... > /build/reproducible-path/pyrate-limiter-3.9.0/docs/modules/pyrate_limiter.rst: > WARNING: document isn't included in any toctree [toc.not_included] > /build/reproducible-path/pyrate-limiter-3.9.0/docs/modules/pyrate_limiter.abstracts.rst: > document is referenced in multiple toctrees: ['modules/pyrate_limiter', > 'reference'], selecting: reference <- modules/pyrate_limiter.abstracts > /build/reproducible-path/pyrate-limiter-3.9.0/docs/modules/pyrate_limiter.abstracts.bucket.rst: > document is referenced in multiple toctrees: > ['modules/pyrate_limiter.abstracts', 'reference'], selecting: reference <- > modules/pyrate_limiter.abstracts.bucket > /build/reproducible-path/pyrate-limiter-3.9.0/docs/modules/pyrate_limiter.abstracts.clock.rst: > document is referenced in multiple toctrees: > ['modules/pyrate_limiter.abstracts', 'reference'], selecting: reference <- > modules/pyrate_limiter.abstracts.clock > /build/reproducible-path/pyrate-limiter-3.9.0/docs/modules/pyrate_limiter.abstracts.rate.rst: > document is referenced in multiple toctrees: > ['modules/pyrate_limiter.abstracts', 'reference'], selecting: reference <- > modules/pyrate_limiter.abstracts.rate > /build/reproducible-path/pyrate-limiter-3.9.0/docs/modules/pyrate_limiter.abstracts.wrappers.rst: > document is referenced in multiple toctrees: > ['modules/pyrate_limiter.abstracts', 'reference'], selecting: reference <- > modules/pyrate_limiter.abstracts.wrappers > /build/reproducible-path/pyrate-limiter-3.9.0/docs/modules/pyrate_limiter.buckets.rst: > document is referenced in multiple toctrees: ['modules/pyrate_limiter', > 'reference'], selecting: reference <- modules/pyrate_limiter.buckets > /build/reproducible-path/pyrate-limiter-3.9.0/docs/modules/pyrate_limiter.buckets.in_memory_bucket.rst: > document is referenced in multiple toctrees: > ['modules/pyrate_limiter.buckets', 'reference'], selecting: reference <- > modules/pyrate_limiter.buckets.in_memory_bucket > /build/reproducible-path/pyrate-limiter-3.9.0/docs/modules/pyrate_limiter.buckets.mp_bucket.rst: > document is referenced in multiple toctrees: > ['modules/pyrate_limiter.buckets', 'reference'], selecting: reference <- > modules/pyrate_limiter.buckets.mp_bucket > /build/reproducible-path/pyrate-limiter-3.9.0/docs/modules/pyrate_limiter.buckets.postgres.rst: > document is referenced in multiple toctrees: > ['modules/pyrate_limiter.buckets', 'reference'], selecting: reference <- > modules/pyrate_limiter.buckets.postgres > /build/reproducible-path/pyrate-limiter-3.9.0/docs/modules/pyrate_limiter.buckets.redis_bucket.rst: > document is referenced in multiple toctrees: > ['modules/pyrate_limiter.buckets', 'reference'], selecting: reference <- > modules/pyrate_limiter.buckets.redis_bucket > /build/reproducible-path/pyrate-limiter-3.9.0/docs/modules/pyrate_limiter.buckets.sqlite_bucket.rst: > document is referenced in multiple toctrees: > ['modules/pyrate_limiter.buckets', 'reference'], selecting: reference <- > modules/pyrate_limiter.buckets.sqlite_bucket > /build/reproducible-path/pyrate-limiter-3.9.0/docs/modules/pyrate_limiter.clocks.rst: > document is referenced in multiple toctrees: ['modules/pyrate_limiter', > 'reference'], selecting: reference <- modules/pyrate_limiter.clocks > /build/reproducible-path/pyrate-limiter-3.9.0/docs/modules/pyrate_limiter.exceptions.rst: > document is referenced in multiple toctrees: ['modules/pyrate_limiter', > 'reference'], selecting: reference <- modules/pyrate_limiter.exceptions > /build/reproducible-path/pyrate-limiter-3.9.0/docs/modules/pyrate_limiter.limiter.rst: > document is referenced in multiple toctrees: ['modules/pyrate_limiter', > 'reference'], selecting: reference <- modules/pyrate_limiter.limiter > /build/reproducible-path/pyrate-limiter-3.9.0/docs/modules/pyrate_limiter.limiter_factory.rst: > document is referenced in multiple toctrees: ['modules/pyrate_limiter', > 'reference'], selecting: reference <- modules/pyrate_limiter.limiter_factory > /build/reproducible-path/pyrate-limiter-3.9.0/docs/modules/pyrate_limiter.utils.rst: > document is referenced in multiple toctrees: ['modules/pyrate_limiter', > 'reference'], selecting: reference <- modules/pyrate_limiter.utils > done > preparing documents... done > copying assets... > copying static files... > Writing evaluated template result to > /build/reproducible-path/pyrate-limiter-3.9.0/docs/_build/html/_static/basic.css > Writing evaluated template result to > /build/reproducible-path/pyrate-limiter-3.9.0/docs/_build/html/_static/language_data.js > Writing evaluated template result to > /build/reproducible-path/pyrate-limiter-3.9.0/docs/_build/html/_static/documentation_options.js > Writing evaluated template result to > /build/reproducible-path/pyrate-limiter-3.9.0/docs/_build/html/_static/copybutton.js > copying static files: done > copying extra files... > copying extra files: done > copying assets: done > writing output... [ 5%] changelog > writing output... [ 10%] contributing > writing output... [ 14%] index > writing output... [ 19%] modules/pyrate_limiter > writing output... [ 24%] modules/pyrate_limiter.abstracts > writing output... [ 29%] modules/pyrate_limiter.abstracts.bucket > writing output... [ 33%] modules/pyrate_limiter.abstracts.clock > writing output... [ 38%] modules/pyrate_limiter.abstracts.rate > writing output... [ 43%] modules/pyrate_limiter.abstracts.wrappers > writing output... [ 48%] modules/pyrate_limiter.buckets > writing output... [ 52%] modules/pyrate_limiter.buckets.in_memory_bucket > writing output... [ 57%] modules/pyrate_limiter.buckets.mp_bucket > writing output... [ 62%] modules/pyrate_limiter.buckets.postgres > writing output... [ 67%] modules/pyrate_limiter.buckets.redis_bucket > writing output... [ 71%] modules/pyrate_limiter.buckets.sqlite_bucket > writing output... [ 76%] modules/pyrate_limiter.clocks > writing output... [ 81%] modules/pyrate_limiter.exceptions > writing output... [ 86%] modules/pyrate_limiter.limiter > writing output... [ 90%] modules/pyrate_limiter.limiter_factory > writing output... [ 95%] modules/pyrate_limiter.utils > writing output... [100%] reference > > /build/reproducible-path/pyrate-limiter-3.9.0/README.md:1801: WARNING: 'myst' > cross-reference target not found: 'pyrate_limiter.limiter_factory.py' > [myst.xref_missing] > /build/reproducible-path/pyrate-limiter-3.9.0/README.md:1807: WARNING: 'myst' > cross-reference target not found: 'examples/asyncio_ratelimit.py' > [myst.xref_missing] > /build/reproducible-path/pyrate-limiter-3.9.0/README.md:1808: WARNING: 'myst' > cross-reference target not found: 'examples/asyncio_decorator.py' > [myst.xref_missing] > /build/reproducible-path/pyrate-limiter-3.9.0/README.md:1809: WARNING: 'myst' > cross-reference target not found: 'examples/httpx_ratelimiter.py' > [myst.xref_missing] > /build/reproducible-path/pyrate-limiter-3.9.0/README.md:1810: WARNING: 'myst' > cross-reference target not found: 'examples/in_memory_multiprocess.py' > [myst.xref_missing] > /build/reproducible-path/pyrate-limiter-3.9.0/README.md:1811: WARNING: 'myst' > cross-reference target not found: 'examples/sql_filelock_multiprocess.py' > [myst.xref_missing] > /build/reproducible-path/pyrate-limiter-3.9.0/README.md:2020: WARNING: 'myst' > cross-reference target not found: 'examples/asyncio_ratelimit.py' > [myst.xref_missing] > /build/reproducible-path/pyrate-limiter-3.9.0/README.md:2062: WARNING: 'myst' > cross-reference target not found: 'examples/asyncio_decorator.py' > [myst.xref_missing] > /build/reproducible-path/pyrate-limiter-3.9.0/README.md:2114: WARNING: 'myst' > cross-reference target not found: 'advanced-usage' [myst.xref_missing] > /build/reproducible-path/pyrate-limiter-3.9.0/README.md:2243: WARNING: 'myst' > cross-reference target not found: 'examples/in_memory_multiprocess.py' > [myst.xref_missing] > /build/reproducible-path/pyrate-limiter-3.9.0/README.md:2321: WARNING: 'myst' > cross-reference target not found: 'pyrate_limiter/limiter_factory.py' > [myst.xref_missing] > /build/reproducible-path/pyrate-limiter-3.9.0/README.md:2345: WARNING: 'myst' > cross-reference target not found: 'pyrate_limiter/limiter_factory.py' > [myst.xref_missing] > generating indices... genindex py-modindex done > writing additional pages... search done > dumping search index in English (code: en)... done > dumping object inventory... done > build succeeded, 15 warnings. > > The HTML pages are in _build/html. > make[1]: Leaving directory '/build/reproducible-path/pyrate-limiter-3.9.0' > dh_auto_test -O--buildsystem=pybuild > I: pybuild pybuild:308: redis-server --daemonize yes > 110:C 18 Sep 2025 14:39:32.589 # WARNING Memory overcommit must be enabled! > Without it, a background save or replication may fail under low memory > condition. Being disabled, it can also cause failures without low memory > condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this > issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or > run the command 'sysctl vm.overcommit_memory=1' for this to take effect. > I: pybuild base:311: cd > /build/reproducible-path/pyrate-limiter-3.9.0/.pybuild/cpython3_3.13/build; > python3.13 -m pytest -x -k "not postgres and not test_limiter_constructor_02" > ============================= test session starts > ============================== > platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 > rootdir: > /build/reproducible-path/pyrate-limiter-3.9.0/.pybuild/cpython3_3.13/build > configfile: pyproject.toml > plugins: asyncio-1.1.0, typeguard-4.4.4, cov-5.0.0 > asyncio: mode=Mode.AUTO, asyncio_default_fixture_loop_scope=function, > asyncio_default_test_loop_scope=function > collected 876 items / 263 deselected / 613 selected > > tests/test_bucket_all.py ............................................... [ > 7%] > ...........................F > > =================================== FAILURES > =================================== > ________________ test_bucket_leak[clock0-create_sqlite_bucket] > _________________ > > clock = <pyrate_limiter.clocks.MonotonicClock object at 0x7fe265713a10> > create_bucket = <function create_sqlite_bucket at 0x7fe26557ede0> > > @pytest.mark.asyncio > async def test_bucket_leak(clock: ClockSet, create_bucket): > rates = [Rate(100, 3000)] > bucket = BucketAsyncWrapper(await create_bucket(rates)) > > while await bucket.count() < 200: > await bucket.put(RateItem("item", await get_now(clock))) > > await bucket.leak(await get_now(clock)) > > assert await bucket.count() == 100 > E assert 49 == 100 > > tests/test_bucket_all.py:205: AssertionError > ----------------------------- Captured stderr call > ----------------------------- > INFO:pyrate_limiter:SQLite db path: /tmp/pyrate_limiter_jxNBX.sqlite > INFO:pyrate_limiter.limiter_factory:table_name='pyrate-test-bucket-Zhuk96jc1u' > ------------------------------ Captured log call > ------------------------------- > INFO pyrate_limiter:conftest.py:96 SQLite db path: > /tmp/pyrate_limiter_jxNBX.sqlite > INFO pyrate_limiter.limiter_factory:limiter_factory.py:43 > table_name='pyrate-test-bucket-Zhuk96jc1u' > =========================== short test summary info > ============================ > FAILED tests/test_bucket_all.py::test_bucket_leak[clock0-create_sqlite_bucket] > !!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 1 failures > !!!!!!!!!!!!!!!!!!!!!!!!!!! > =========== 1 failed, 74 passed, 263 deselected in 213.03s (0:03:33) > =========== > E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd > /build/reproducible-path/pyrate-limiter-3.9.0/.pybuild/cpython3_3.13/build; > python3.13 -m pytest -x -k "not postgres and not test_limiter_constructor_02" > dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.13 > returned exit code 13

