redis / redis-rb

A Ruby client library for Redis
MIT License
3.98k stars 1.03k forks source link

`Redis::Client#mget` returning "OK", rather than an Array #1294

Open nick96 opened 1 month ago

nick96 commented 1 month ago

We're seeing "OK" being returned in response to a call to Redis::Client#mget. This results in a #<TypeError: wrong argument type String (must respond to :each)> as we're then trying to call Array#zip to zip the keys with their value. From our logs I can see this started happening in January of this year when we upgraded the redis gem from 5.0.6 to 5.0.8 and was happening up until we downgraded to 5.0.6 a few weeks ago.

With the downgrade our Gemfile.lock looks like:

redis (5.0.6)
  redis-client (>= 0.9.0)
redis-client (0.12.1)
  connection_pool

Previously, at 5.0.8 it looked like:

redis (5.0.8)
  redis-client (>= 0.17.0)
redis-client (0.19.1)
  connection_pool

We were also seeing this issue with the latest version, 5.3.0:

redis (5.3.0)
  redis-client (>= 0.22.0)
redis-client (0.22.2)
  connection_pool

I'm not sure if it has the same cause as https://github.com/redis/redis-rb/issues/925, the result of an auth request being returned, but the symptoms look similar.