redis-py
redis-py copied to clipboard
4.4.0rc2: read() called while another coroutine is already waiting for incoming data
Version: 4.4.0rc2
Platform: MacOS and Windows. Python 3.10.6.
Description: We've noticed that we are no longer able to enqueue_job()
with arq
. All of this works in 4.4.0rc1
.
Traceback (most recent call last):
File "<redacted>", line <redacted>, in <redacted>
await redis.enqueue_job(
File "<redacted>", line 137, in enqueue_job
if any(await asyncio.gather(pipe.exists(job_key), pipe.exists(result_key_prefix + job_id))):
File "<redacted>/lib/python3.10/site-packages/redis/asyncio/client.py", line 1161, in immediate_execute_command
return await conn.retry.call_with_retry(
File "<redacted>lib/python3.10/site-packages/redis/asyncio/retry.py", line 59, in call_with_retry
return await do()
File "<redacted>lib/python3.10/site-packages/redis/asyncio/client.py", line 463, in _send_command_parse_response
return await self.parse_response(conn, command_name, **options)
File "<redacted>lib/python3.10/site-packages/redis/asyncio/client.py", line 1293, in parse_response
result = await super().parse_response(connection, command_name, **options)
File "/<redacted>/lib/python3.10/site-packages/redis/asyncio/client.py", line 505, in parse_response
response = await connection.read_response()
File "<redacted>/lib/python3.10/site-packages/redis/asyncio/connection.py", line 886, in read_response
response = await self._parser.read_response(
File "<redacted>/lib/python3.10/site-packages/redis/asyncio/connection.py", line 468, in read_response
await self.read_from_socket()
File "<redacted>/lib/python3.10/site-packages/redis/asyncio/connection.py", line 451, in read_from_socket
buffer = await self._stream.read(self._read_size)
File "<redacted>/lib/python3.10/asyncio/streams.py", line 669, in read
await self._wait_for_data('read')
File "<redacted>lib/python3.10/asyncio/streams.py", line 488, in _wait_for_data
raise RuntimeError(
RuntimeError: read() called while another coroutine is already waiting for incoming data
I can try to provide a reproducible example later if you'd like, but that would require arq
as a dependency.