redis-rb / redis-client

Simple low level client for Redis 6+
MIT License
124 stars 60 forks source link

Problems with sentinnels on newest version (0.15.0) #131

Closed tomasmiguez closed 1 year ago

tomasmiguez commented 1 year ago

We currently use sentinnels by providing the following config to the gem:

name: xxx
sentinels:
  - host: xxx
    port: xxx
  - host: xxx
    port: xxx
  - host: xxx
    port: xxx

Up to version 0.14.1, this worked without issue. But when using the same config on version 0.15.0, we get:

2023-08-08T13:08:59.228Z pid=1 tid=37l WARN: NoMethodError: undefined method `call' for #<Redis::Client redis://redis-node-0.redis-headless.default.svc.cluster.local:26379/0>
2023-08-08T13:08:59.228Z pid=1 tid=37l WARN: /usr/local/bundle/gems/redis-client-0.15.0/lib/redis_client/sentinel_config.rb:128:in `block in resolve_master'
/usr/local/bundle/gems/redis-client-0.15.0/lib/redis_client/sentinel_config.rb:170:in `block in each_sentinel'
/usr/local/bundle/gems/redis-client-0.15.0/lib/redis_client/sentinel_config.rb:166:in `each'
/usr/local/bundle/gems/redis-client-0.15.0/lib/redis_client/sentinel_config.rb:166:in `each_sentinel'
/usr/local/bundle/gems/redis-client-0.15.0/lib/redis_client/sentinel_config.rb:127:in `resolve_master'
/usr/local/bundle/gems/redis-client-0.15.0/lib/redis_client/sentinel_config.rb:119:in `block in config'
/usr/local/bundle/gems/redis-client-0.15.0/lib/redis_client/sentinel_config.rb:117:in `synchronize'
/usr/local/bundle/gems/redis-client-0.15.0/lib/redis_client/sentinel_config.rb:117:in `config'
/usr/local/bundle/gems/redis-client-0.15.0/lib/redis_client/sentinel_config.rb:69:in `host'
/usr/local/bundle/gems/redis-client-0.15.0/lib/redis_client/ruby_connection.rb:124:in `connect'
/usr/local/bundle/gems/redis-client-0.15.0/lib/redis_client/ruby_connection.rb:49:in `initialize'
/usr/local/bundle/gems/redis-client-0.15.0/lib/redis_client.rb:685:in `new'
/usr/local/bundle/gems/redis-client-0.15.0/lib/redis_client.rb:685:in `block in connect'
/usr/local/bundle/gems/redis-client-0.15.0/lib/redis_client/middlewares.rb:12:in `connect'
/usr/local/bundle/gems/redis-client-0.15.0/lib/redis_client.rb:684:in `connect'
/usr/local/bundle/gems/redis-client-0.15.0/lib/redis_client.rb:671:in `raw_connection'
/usr/local/bundle/gems/redis-client-0.15.0/lib/redis_client.rb:638:in `ensure_connected'
/usr/local/bundle/gems/redis-client-0.15.0/lib/redis_client.rb:233:in `call_v'
/usr/local/bundle/gems/redis-5.0.6/lib/redis/client.rb:73:in `call_v'
/usr/local/bundle/gems/redis-5.0.6/lib/redis.rb:167:in `block in send_command'
/usr/local/bundle/gems/redis-5.0.6/lib/redis.rb:166:in `synchronize'
/usr/local/bundle/gems/redis-5.0.6/lib/redis.rb:166:in `send_command'
/usr/local/bundle/gems/redis-5.0.6/lib/redis/commands/keys.rb:252:in `exists'
casperisfine commented 1 year ago

Uh, this makes little sense.

Redis::Client inherits from RedisClient https://github.com/redis/redis-rb/blob/f21cbca67b74e74276e5f8e1de1da4d6d6de64d7/lib/redis/client.rb#L6

And it definitely have that method: https://github.com/redis-rb/redis-client/blob/bda8b905bccdf41f9937c0e28807bdd5289f2d13/lib/redis_client.rb#L216

Are you able to reproduce this is isolation? I'd need to be able to poke at such error to understand what is going on.

casperisfine commented 1 year ago

Ah wait, someone else reported the same thing at https://github.com/redis-rb/redis-client/issues/131.

I'll handle it there.

tomasmiguez commented 1 year ago

I think the link is this same issue?

casperisfine commented 1 year ago

Yes.

tomasmiguez commented 1 year ago

Okay, could you point me to where this will be tracked then?

It would be really useful for knowing when we can update this dependency.

tomasmiguez commented 1 year ago

Oh, I think I found it. https://github.com/redis/redis-rb/issues/1209

Thanks!

byroot commented 1 year ago

Ah yeah sorry, I didn't notice I totally derped the linking 🤦