Source: aioredis Version: 1.3.1-2 Severity: serious Justification: FTBFS Tags: trixie sid ftbfs User: lu...@debian.org Usertags: ftbfs-20231212 ftbfs-trixie
Hi, During a rebuild of all packages in sid, your package failed to build on amd64. Relevant part (hopefully): > debian/rules build > dh build --with python3 --buildsystem=pybuild > dh: warning: Compatibility levels before 10 are deprecated (level 9 in use) > dh_update_autotools_config -O--buildsystem=pybuild > dh_auto_configure -O--buildsystem=pybuild > dh_auto_configure: warning: Compatibility levels before 10 are deprecated > (level 9 in use) > I: pybuild base:310: python3.12 setup.py config > running config > I: pybuild base:310: python3.11 setup.py config > running config > dh_auto_build -O--buildsystem=pybuild > dh_auto_build: warning: Compatibility levels before 10 are deprecated (level > 9 in use) > I: pybuild base:310: /usr/bin/python3.12 setup.py build > running build > running build_py > creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_aioredis/build/aioredis > copying aioredis/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_aioredis/build/aioredis > copying aioredis/pool.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_aioredis/build/aioredis > copying aioredis/log.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_aioredis/build/aioredis > copying aioredis/parser.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_aioredis/build/aioredis > copying aioredis/errors.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_aioredis/build/aioredis > copying aioredis/pubsub.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_aioredis/build/aioredis > copying aioredis/abc.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_aioredis/build/aioredis > copying aioredis/locks.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_aioredis/build/aioredis > copying aioredis/util.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_aioredis/build/aioredis > copying aioredis/stream.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_aioredis/build/aioredis > copying aioredis/connection.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_aioredis/build/aioredis > creating > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_aioredis/build/aioredis/sentinel > copying aioredis/sentinel/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_aioredis/build/aioredis/sentinel > copying aioredis/sentinel/pool.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_aioredis/build/aioredis/sentinel > copying aioredis/sentinel/commands.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_aioredis/build/aioredis/sentinel > creating > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_aioredis/build/aioredis/commands > copying aioredis/commands/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_aioredis/build/aioredis/commands > copying aioredis/commands/geo.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_aioredis/build/aioredis/commands > copying aioredis/commands/cluster.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_aioredis/build/aioredis/commands > copying aioredis/commands/transaction.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_aioredis/build/aioredis/commands > copying aioredis/commands/string.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_aioredis/build/aioredis/commands > copying aioredis/commands/streams.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_aioredis/build/aioredis/commands > copying aioredis/commands/generic.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_aioredis/build/aioredis/commands > copying aioredis/commands/list.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_aioredis/build/aioredis/commands > copying aioredis/commands/sorted_set.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_aioredis/build/aioredis/commands > copying aioredis/commands/pubsub.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_aioredis/build/aioredis/commands > copying aioredis/commands/hyperloglog.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_aioredis/build/aioredis/commands > copying aioredis/commands/scripting.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_aioredis/build/aioredis/commands > copying aioredis/commands/hash.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_aioredis/build/aioredis/commands > copying aioredis/commands/server.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_aioredis/build/aioredis/commands > copying aioredis/commands/set.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_aioredis/build/aioredis/commands > running egg_info > creating aioredis.egg-info > writing aioredis.egg-info/PKG-INFO > writing dependency_links to aioredis.egg-info/dependency_links.txt > writing requirements to aioredis.egg-info/requires.txt > writing top-level names to aioredis.egg-info/top_level.txt > writing manifest file 'aioredis.egg-info/SOURCES.txt' > reading manifest file 'aioredis.egg-info/SOURCES.txt' > reading manifest template 'MANIFEST.in' > warning: no previously-included files matching '*.pyc' found anywhere in > distribution > warning: no previously-included files matching '*.swp' found anywhere in > distribution > warning: no previously-included files matching '*.*~' found anywhere in > distribution > adding license file 'LICENSE' > writing manifest file 'aioredis.egg-info/SOURCES.txt' > I: pybuild base:310: /usr/bin/python3 setup.py build > running build > running build_py > creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aioredis/build/aioredis > copying aioredis/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aioredis/build/aioredis > copying aioredis/pool.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aioredis/build/aioredis > copying aioredis/log.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aioredis/build/aioredis > copying aioredis/parser.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aioredis/build/aioredis > copying aioredis/errors.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aioredis/build/aioredis > copying aioredis/pubsub.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aioredis/build/aioredis > copying aioredis/abc.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aioredis/build/aioredis > copying aioredis/locks.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aioredis/build/aioredis > copying aioredis/util.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aioredis/build/aioredis > copying aioredis/stream.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aioredis/build/aioredis > copying aioredis/connection.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aioredis/build/aioredis > creating > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aioredis/build/aioredis/sentinel > copying aioredis/sentinel/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aioredis/build/aioredis/sentinel > copying aioredis/sentinel/pool.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aioredis/build/aioredis/sentinel > copying aioredis/sentinel/commands.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aioredis/build/aioredis/sentinel > creating > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aioredis/build/aioredis/commands > copying aioredis/commands/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aioredis/build/aioredis/commands > copying aioredis/commands/geo.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aioredis/build/aioredis/commands > copying aioredis/commands/cluster.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aioredis/build/aioredis/commands > copying aioredis/commands/transaction.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aioredis/build/aioredis/commands > copying aioredis/commands/string.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aioredis/build/aioredis/commands > copying aioredis/commands/streams.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aioredis/build/aioredis/commands > copying aioredis/commands/generic.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aioredis/build/aioredis/commands > copying aioredis/commands/list.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aioredis/build/aioredis/commands > copying aioredis/commands/sorted_set.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aioredis/build/aioredis/commands > copying aioredis/commands/pubsub.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aioredis/build/aioredis/commands > copying aioredis/commands/hyperloglog.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aioredis/build/aioredis/commands > copying aioredis/commands/scripting.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aioredis/build/aioredis/commands > copying aioredis/commands/hash.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aioredis/build/aioredis/commands > copying aioredis/commands/server.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aioredis/build/aioredis/commands > copying aioredis/commands/set.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aioredis/build/aioredis/commands > running egg_info > writing aioredis.egg-info/PKG-INFO > writing dependency_links to aioredis.egg-info/dependency_links.txt > writing requirements to aioredis.egg-info/requires.txt > writing top-level names to aioredis.egg-info/top_level.txt > reading manifest file 'aioredis.egg-info/SOURCES.txt' > reading manifest template 'MANIFEST.in' > warning: no previously-included files matching '*.pyc' found anywhere in > distribution > warning: no previously-included files matching '*.swp' found anywhere in > distribution > warning: no previously-included files matching '*.*~' found anywhere in > distribution > adding license file 'LICENSE' > writing manifest file 'aioredis.egg-info/SOURCES.txt' > dh_auto_test -O--buildsystem=pybuild > dh_auto_test: warning: Compatibility levels before 10 are deprecated (level 9 > in use) > I: pybuild base:310: cd > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_aioredis/build; python3.12 -m pytest > -ktest_global_loop > ============================= test session starts > ============================== > platform linux -- Python 3.12.1, pytest-7.4.3, pluggy-1.3.0 > rootdir: /<<PKGBUILDDIR>> > configfile: setup.cfg > plugins: cov-4.1.0 > collected 799 items / 798 deselected / 1 selected > > tests/multi_exec_test.py F > [100%] > > =================================== FAILURES > =================================== > _______________________________ test_global_loop > _______________________________ > > def test_global_loop(): > conn = mock.Mock(spec=( > 'execute closed _transaction_error _buffered' > .split())) > try: > old_loop = asyncio.get_event_loop() > except (AssertionError, RuntimeError): > old_loop = None > loop = asyncio.new_event_loop() > asyncio.set_event_loop(loop) > > tr = MultiExec(conn, commands_factory=Redis) > # assert tr._loop is loop > > def make_fut(cmd, *args, **kw): > fut = asyncio.get_event_loop().create_future() > if cmd == 'PING': > fut.set_result(b'QUEUED') > elif cmd == 'EXEC': > fut.set_result([b'PONG']) > else: > fut.set_result(b'OK') > return fut > > conn.execute.side_effect = make_fut > conn.closed = False > conn._transaction_error = None > conn._buffered.side_effect = lambda: nullcontext(conn) > > async def go(): > tr.ping() > res = await tr.execute() > assert res == [b'PONG'] > > loop.run_until_complete(go()) > > tests/multi_exec_test.py:47: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > /usr/lib/python3.12/asyncio/base_events.py:684: in run_until_complete > return future.result() > tests/multi_exec_test.py:45: in go > res = await tr.execute() > aioredis/commands/transaction.py:176: in execute > return await self._do_execute( > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <aioredis.commands.transaction.MultiExec object at 0x7fca9e3fba70> > conn = <Mock id='140508215083280'> > > async def _do_execute(self, conn, *, return_exceptions=False): > self._waiters = waiters = [] > with conn._buffered(): > multi = conn.execute('MULTI') > coros = list(self._send_pipeline(conn)) > exec_ = conn.execute('EXEC') > gather = asyncio.gather(multi, *coros, > return_exceptions=True) > last_error = None > try: > await asyncio.shield(gather) > except asyncio.CancelledError: > await gather > except Exception as err: > last_error = err > raise > finally: > if conn.closed: > if last_error is None: > last_error = ConnectionClosedError() > for fut in waiters: > _set_exception(fut, last_error) > # fut.cancel() > for fut in self._results: > if not fut.done(): > fut.set_exception(last_error) > # fut.cancel() > else: > try: > results = await exec_ > except RedisError as err: > for fut in waiters: > fut.set_exception(err) > else: > > assert len(results) == len(waiters), ( > "Results does not match waiters", results, waiters) > E AssertionError: ('Results does not match waiters', > [b'PONG'], [<Future pending>]) > > aioredis/commands/transaction.py:293: AssertionError > =============================== warnings summary > =============================== > tests/conftest.py:33 > > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_aioredis/build/tests/conftest.py:33: > PytestDeprecationWarning: @pytest.yield_fixture is deprecated. > Use @pytest.fixture instead; they are the same. > @pytest.yield_fixture > > tests/conftest.py:143 > > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_aioredis/build/tests/conftest.py:143: > PytestDeprecationWarning: @pytest.yield_fixture is deprecated. > Use @pytest.fixture instead; they are the same. > @pytest.yield_fixture > > tests/conftest.py:502 > > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_aioredis/build/tests/conftest.py:502: > PytestDeprecationWarning: @pytest.yield_fixture is deprecated. > Use @pytest.fixture instead; they are the same. > @pytest.yield_fixture(scope='session') > > tests/conftest.py:527 > > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_aioredis/build/tests/conftest.py:527: > PytestDeprecationWarning: The hookimpl pytest_pyfunc_call uses old-style > configuration options (marks or attributes). > Please use the pytest.hookimpl(tryfirst=True) decorator instead > to configure the hooks. > See > https://docs.pytest.org/en/latest/deprecations.html#configuring-hook-specs-impls-using-markers > @pytest.mark.tryfirst > > ../../../../../../usr/lib/python3/dist-packages/_pytest/config/__init__.py:1373 > /usr/lib/python3/dist-packages/_pytest/config/__init__.py:1373: > PytestConfigWarning: Unknown config option: restpaths > > self._warn_or_fail_if_strict(f"Unknown config option: {key}\n") > > .pybuild/cpython3_3.12_aioredis/build/tests/multi_exec_test.py::test_global_loop > > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_aioredis/build/tests/multi_exec_test.py:19: > DeprecationWarning: There is no current event loop > old_loop = asyncio.get_event_loop() > > -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html > =========================== short test summary info > ============================ > FAILED tests/multi_exec_test.py::test_global_loop - AssertionError: > ('Results... > ================ 1 failed, 798 deselected, 6 warnings in 1.22s > ================= > E: pybuild pybuild:395: test: plugin distutils failed with: exit code=1: cd > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_aioredis/build; python3.12 -m pytest > -ktest_global_loop > I: pybuild base:310: cd > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aioredis/build; python3.11 -m pytest > -ktest_global_loop > ============================= test session starts > ============================== > platform linux -- Python 3.11.7, pytest-7.4.3, pluggy-1.3.0 > rootdir: /<<PKGBUILDDIR>> > configfile: setup.cfg > plugins: cov-4.1.0 > collected 799 items / 798 deselected / 1 selected > > tests/multi_exec_test.py . > [100%] > > =============================== warnings summary > =============================== > tests/conftest.py:33 > > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aioredis/build/tests/conftest.py:33: > PytestDeprecationWarning: @pytest.yield_fixture is deprecated. > Use @pytest.fixture instead; they are the same. > @pytest.yield_fixture > > tests/conftest.py:143 > > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aioredis/build/tests/conftest.py:143: > PytestDeprecationWarning: @pytest.yield_fixture is deprecated. > Use @pytest.fixture instead; they are the same. > @pytest.yield_fixture > > tests/conftest.py:502 > > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aioredis/build/tests/conftest.py:502: > PytestDeprecationWarning: @pytest.yield_fixture is deprecated. > Use @pytest.fixture instead; they are the same. > @pytest.yield_fixture(scope='session') > > tests/conftest.py:527 > > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_aioredis/build/tests/conftest.py:527: > PytestDeprecationWarning: The hookimpl pytest_pyfunc_call uses old-style > configuration options (marks or attributes). > Please use the pytest.hookimpl(tryfirst=True) decorator instead > to configure the hooks. > See > https://docs.pytest.org/en/latest/deprecations.html#configuring-hook-specs-impls-using-markers > @pytest.mark.tryfirst > > ../../../../../../usr/lib/python3/dist-packages/_pytest/config/__init__.py:1373 > /usr/lib/python3/dist-packages/_pytest/config/__init__.py:1373: > PytestConfigWarning: Unknown config option: restpaths > > self._warn_or_fail_if_strict(f"Unknown config option: {key}\n") > > -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html > ================ 1 passed, 798 deselected, 5 warnings in 1.27s > ================= > dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.12 > 3.11" returned exit code 13 The full build log is available from: http://qa-logs.debian.net/2023/12/12/aioredis_1.3.1-2_unstable.log All bugs filed during this archive rebuild are listed at: https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20231212;users=lu...@debian.org or: https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20231212&fusertaguser=lu...@debian.org&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.