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.

Reply via email to