DriverX / aioredis-cluster

Redis Cluster support extension for aioredis
MIT License
24 stars 7 forks source link

Compatibility issues #28

Open XTUxiongda opened 3 weeks ago

XTUxiongda commented 3 weeks ago

[2024-06-12 10:40:01,766] [ WARNING] manager.py:242 - Unable to get cluster state from 10.106.100.61:7004: ValueError('loop argument must agree with lock') [2024-06-12 10:40:01,766] [ WARNING] manager.py:242 - Unable to get cluster state from 10.106.100.61:7002: ValueError('loop argument must agree with lock') [2024-06-12 10:40:01,766] [ WARNING] manager.py:242 - Unable to get cluster state from 10.106.100.61:7005: ValueError('loop argument must agree with lock') [2024-06-12 10:40:01,767] [ WARNING] manager.py:242 - Unable to get cluster state from 10.106.100.61:7003: ValueError('loop argument must agree with lock') [2024-06-12 10:40:01,767] [ WARNING] manager.py:242 - Unable to get cluster state from 10.106.100.61:7001: ValueError('loop argument must agree with lock') [2024-06-12 10:40:01,767] [ WARNING] manager.py:242 - Unable to get cluster state from 10.106.100.61:7006: ValueError('loop argument must agree with lock') [2024-06-12 10:40:01,767] [ ERROR] manager.py:272 - No available hosts to load cluster slots. Tried hosts: [Address(host='10.106.100.61', port=7004), Address(host='10.106.100.61', port=7002), Address(host='10.106.100.61', port=7005), Address(host='10.106.100.61', port=7003), Address(host='10.106.100.61', port=7001), Address(host='10.106.100.61', port=7006)] ERROR: Traceback (most recent call last): File "D:\coding\python3.10\lib\site-packages\starlette\routing.py", line 734, in lifespan async with self.lifespan_context(app) as maybe_state: File "D:\coding\python3.10\lib\site-packages\starlette\routing.py", line 610, in __aenter__ await self._router.startup() File "D:\coding\python3.10\lib\site-packages\starlette\routing.py", line 711, in startup await handler() File "D:\pythonProject\ai-box\app\main.py", line 81, in startup_wrapper await startup_event() # 初始化redis File "D:\pythonProject\ai-box\app\services\basic\redis_operations.py", line 25, in startup_event redis_pool = await aioredis_cluster.create_redis_cluster(cluster_list, password=pwd) File "D:\coding\python3.10\lib\site-packages\aioredis_cluster\factory.py", line 107, in create_redis_cluster cluster = await create_cluster( File "D:\coding\python3.10\lib\site-packages\aioredis_cluster\factory.py", line 73, in create_cluster await cluster._init() File "D:\coding\python3.10\lib\site-packages\aioredis_cluster\cluster.py", line 554, in _init await self._manager._init() File "D:\coding\python3.10\lib\site-packages\aioredis_cluster\manager.py", line 396, in _init await self.reload_state() File "D:\coding\python3.10\lib\site-packages\aioredis_cluster\manager.py", line 164, in reload_state return await self._load_state(self._reload_count) File "D:\coding\python3.10\lib\site-packages\aioredis_cluster\manager.py", line 360, in _load_state state = await self._fetch_state(init_addrs, reload_id, self._state) File "D:\coding\python3.10\lib\site-packages\aioredis_cluster\manager.py", line 274, in _fetch_state raise last_err File "D:\coding\python3.10\lib\site-packages\aioredis_cluster\manager.py", line 206, in _fetch_state pool = await self._pooler.ensure_pool(addr) File "D:\coding\python3.10\lib\site-packages\aioredis_cluster\pooler.py", line 73, in ensure_pool pool = await self._create_pool((addr.host, addr.port)) File "D:\coding\python3.10\lib\site-packages\aioredis_cluster\cluster.py", line 798, in _create_default_pool return await self._create_pool(addr) File "D:\coding\python3.10\lib\site-packages\aioredis_cluster\cluster.py", line 820, in _create_pool pool = await create_pool(addr, **{**default_opts, **opts}) File "D:\coding\python3.10\lib\site-packages\aioredis_cluster\aioredis\pool.py", line 81, in create_pool pool = cls( File "D:\coding\python3.10\lib\site-packages\aioredis_cluster\pool.py", line 96, in __init__ self._cond = asyncio.Condition(lock=asyncio.Lock()) File "D:\coding\python3.10\lib\asyncio\locks.py", line 234, in __init__ raise ValueError("loop argument must agree with lock") ValueError: loop argument must agree with lock

version info: aioredis-cluster~=2.7.0 python: 3.10.0

The Redis service is good, but why does it produce the above error? Is it a compatibility issue? How can I troubleshoot it? Please give me some advice

DriverX commented 3 days ago

This is probably python 3.10.0 bug. See https://bugs.python.org/issue45416. Try upgrade to 3.10.1 or newer