Open
Description
Version:
redis-py 4.5.5 used in a multi-threads program
Platform:
Python 3.9.7 on Linux 5.10 aarch64
Description:
At times, invoking the 'subscribe' function may result in a hang, and based on the stack analysis, it appears that a deadlock might be occurring.
...
Thread 0x0000ffffaca0f150 (most recent call first):
File "/root/miniconda3/lib/python3.9/site-packages/redis/connection.py", line 1497 in release # try lock self._lock again
File "/root/miniconda3/lib/python3.9/site-packages/redis/client.py", line 1426 in reset
File "/root/miniconda3/lib/python3.9/site-packages/redis/client.py", line 1418 in __del__
File "/root/miniconda3/lib/python3.9/site-packages/redis/connection.py", line 949 in __init__
File "/root/miniconda3/lib/python3.9/site-packages/redis/connection.py", line 1492 in make_connection
File "/root/miniconda3/lib/python3.9/site-packages/redis/connection.py", line 1452 in get_connection # with self._lock
File "/root/miniconda3/lib/python3.9/site-packages/redis/client.py", line 1469 in execute_command
File "/root/miniconda3/lib/python3.9/site-packages/redis/client.py", line 1634 in subscribe
...
Client is created with:
host="localhost",
port=self._port,
password="*****",
single_connection_client=True, # might be helpful
socket_timeout=30,
socket_connect_timeout=10,
ssl=self._is_tls,
ssl_ca_certs=f"xxxxxx/tls/ca.crt"
My program:
...
pubsub = c.pubsub()
pubsub.subscribe(channel) # hang
...
Metadata
Metadata
Assignees
Labels
No labels