Control: tags -1 + patch ¡Hola!
El 2023-12-12 a las 09:22 +0100, Lucas Nussbaum escribió:
Severity: serious Justification: FTBFS
During a rebuild of all packages in sid, your package failed to build on amd64.
Doing a rebuild of python related packages in order to test the support of python 3.15 I stumbled upon this issue. The underlying issue is that the tests are dealing with an already done future, so the callbacks added with add_done_callback are never called. I'm attaching patch to fix this, the patch was applied in the python 3.15 sandbox [1]. Please consider applying this or a similar patch. Happy hacking, [1]: https://debusine.debian.net/debian/r-python-python3.15/ -- "If you optimize everything, you will always be unhappy." -- Donald Knuth Saludos /\/\ /\ >< `/
Description: Handle completed futures in _send_pipeline In Python 3.12+, awaiting asyncio.gather on completed futures returns immediately without yielding to the event loop. Check if result_fut is already done and invoke _check_result directly so waiters are populated. Author: Maximiliano Curia <[email protected]> Forwarded: not-needed --- a/aioredis/commands/transaction.py +++ b/aioredis/commands/transaction.py @@ -203,8 +203,11 @@ class Pipeline: for fut, cmd, args, kw in self._pipeline: try: result_fut = conn.execute(cmd, *args, **kw) - result_fut.add_done_callback( - functools.partial(self._check_result, waiter=fut)) + if result_fut.done(): + self._check_result(result_fut, waiter=fut) + else: + result_fut.add_done_callback( + functools.partial(self._check_result, waiter=fut)) except Exception as exc: fut.set_exception(exc) else:
signature.asc
Description: PGP signature

