Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Not working with Redis version 4.5.2 #171

Closed
rajkumar21Virim opened this issue Mar 22, 2023 · 3 comments
Closed

Not working with Redis version 4.5.2 #171

rajkumar21Virim opened this issue Mar 22, 2023 · 3 comments

Comments

@rajkumar21Virim
Copy link

With Redis version 4.5.2, I am getting IndexError: pop from empty list.
I had to downgrade Redis back to redis==4.4.1 to make it work again.

Error logs for the Redis version 4.5.2 attached below:

sed unexpected: TypeError("__init__() got an unexpected keyword argument 'socket_timeout'") edi_file_processor_worker | Traceback (most recent call last): edi_file_processor_worker | File "/usr/local/lib/python3.8/site-packages/redis/connection.py", line 1434, in get_connection edi_file_processor_worker | connection = self._available_connections.pop() edi_file_processor_worker | IndexError: pop from empty list edi_file_processor_worker | edi_file_processor_worker | During handling of the above exception, another exception occurred: edi_file_processor_worker | edi_file_processor_worker | Traceback (most recent call last): edi_file_processor_worker | File "/usr/local/lib/python3.8/site-packages/celery/app/trace.py", line 451, in trace_task edi_file_processor_worker | R = retval = fun(*args, **kwargs) edi_file_processor_worker | File "/usr/local/lib/python3.8/site-packages/celery/app/trace.py", line 734, in __protected_call__ edi_file_processor_worker | return self.run(*args, **kwargs) edi_file_processor_worker | return self.db.hgetall(id) edi_file_processor_worker | File "/edi/utility_and_packages/master_utility/src/utility.py", line 340, in db edi_file_processor_worker | self.__db_connection = Redis(self.latest_log_file_path, decode_responses=True) edi_file_processor_worker | File "/usr/local/lib/python3.8/site-packages/redislite/client.py", line 395, in __init__ edi_file_processor_worker | self._wait_for_server_start() edi_file_processor_worker | File "/usr/local/lib/python3.8/site-packages/redislite/client.py", line 217, in _wait_for_server_start edi_file_processor_worker | self.ping() edi_file_processor_worker | File "/usr/local/lib/python3.8/site-packages/redis/commands/core.py", line 1194, in ping edi_file_processor_worker | return self.execute_command("PING", **kwargs) edi_file_processor_worker | File "/usr/local/lib/python3.8/site-packages/redis/client.py", line 1255, in execute_command edi_file_processor_worker | conn = self.connection or pool.get_connection(command_name, **options) edi_file_processor_worker | File "/usr/local/lib/python3.8/site-packages/redis/connection.py", line 1436, in get_connection edi_file_processor_worker | connection = self.make_connection() edi_file_processor_worker | File "/usr/local/lib/python3.8/site-packages/redis/connection.py", line 1476, in make_connection edi_file_processor_worker | return self.connection_class(**self.connection_kwargs) edi_file_processor_worker | File "/usr/local/lib/python3.8/site-packages/redis/connection.py", line 1160, in __init__ edi_file_processor_worker | super().__init__(**kwargs) edi_file_processor_worker | TypeError: __init__() got an unexpected keyword argument 'socket_timeout'

@lioman
Copy link

lioman commented Mar 29, 2023

Same issue for 4.5.3
4.5.1 Seems to be fine

@steve-mavens
Copy link

steve-mavens commented Apr 12, 2023

This is due to one of a series of bugs in redis-py: for 4.5.2 specifically I think it's redis/redis-py#2629, but also redis/redis-py#2581 redis/redis-py#1902 redis/redis-py#2583

The underlying issue is that they don't (or didn't) test Unix file sockets, which is how people connect to redislite. Then, when they started making changes to their network sockets code, they kept forgetting to apply corresponding changes to the file sockets to keep them compatible. I can't remember the resolution to that, but this is related: redis/redis-py#2588

As far as I know, this is not a bug in redislite. It's just that when connecting to redislite we're all exercising a code path in redis-py that is otherwise rarely used.

@dwighthubbard
Copy link
Contributor

This issue isn't occurring with redis-py 5.0.0 so it appears the issue is fixed there and I'm going to close this issue since the problem isn't in redislite itself.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants