SGrondin / bottleneck

Job scheduler and rate limiter, supports Clustering

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ReplyError: ERR SETTINGS_KEY_NOT_FOUND when use in Clustering mode with Redis 7.x

Pierre-Gilles opened this issue Β· comments

Hi!

First, thank you for this great library πŸ™‚

I tried running this library in Cluster mode with Redis 7.x, and I got the following error:

ReplyError: ERR SETTINGS_KEY_NOT_FOUND
 command: 'EVALSHA',
  args: [
    'f00a66a4159e8488fd6e3b8ccba92a8c602f2062',
    8,
    'b_gladys-gateway_settings',
    'b_gladys-gateway_job_weights',
    'b_gladys-gateway_job_expirations',
    'b_gladys-gateway_job_clients',
    'b_gladys-gateway_client_running',
    'b_gladys-gateway_client_num_queued',
    'b_gladys-gateway_client_last_registered',
    'b_gladys-gateway_client_last_seen',
    1662654440828,
    '4gydkiwu33',
    '0',
    '1'
  ],
  code: 'ERR'
}

If I use an older version of Redis, it works fine.

Any idea of what changed with this version of Redis ?

Just ran into this as well

same issue here as well

Getting this same error as well:

ReplyError: ERR SETTINGS_KEY_NOT_FOUND
    at parseError (/usr/api/node_modules/redis-parser/lib/parser.js:179:12)
    at parseType (/usr/api/node_modules/redis-parser/lib/parser.js:302:14) {
  command: 'EVALSHA',
  args: [
    '8bd3e064b718321194a8df49c69e48fd0ffb4dcd',
    8,
    'b_builtwith_throttler_settings',
    'b_builtwith_throttler_job_weights',
    'b_builtwith_throttler_job_expirations',
    'b_builtwith_throttler_job_clients',
    'b_builtwith_throttler_client_running',
    'b_builtwith_throttler_client_num_queued',
    'b_builtwith_throttler_client_last_registered',
    'b_builtwith_throttler_client_last_seen',
    1665586647495,
    'b9zz33fpice'
  ],
  code: 'ERR'
}
commented

We're also experiencing it with bitnami/redis:7.0.4-debian-11-r4, any workaround? @SGrondin

Same here:

ReplyError: ERR SETTINGS_KEY_NOT_FOUND
  command: 'EVALSHA',
  args: [
    '8bd3e064b718321194a8df49c69e48fd0ffb4dcd',
    8,
    'b_awql_throttler_settings',
    'b_awql_throttler_job_weights',
    'b_awql_throttler_job_expirations',
    'b_awql_throttler_job_clients',
    'b_awql_throttler_client_running',
    'b_awql_throttler_client_num_queued',
    'b_awql_throttler_client_last_registered',
    'b_awql_throttler_client_last_seen',
    1665734323793,
    '0efrswlefrmj'
  ],
  code: 'ERR'
}

We're experiencing this on an elasticache redis instance running 6.2.6, any updates on this? @SGrondin

It's probably happening because of the heartbeat check which validates that keys exist on redis. But since Groups timeout kills the limiter after timeout those keys don't exist anymore.

headers: ["validate_keys", "validate_client", "process_tick"]

The error usually goes away once the group_check.lua runs so a quick hack would be ignore the error for a while until it goes away

Also ran into this. Between this issue and ETIMEDOUT errors, it's been very difficult to get ioredis cleanly working w/ ElastiCache 😒