upstash redis timeouts

Don’t know if directly related but I’m seeing a ton of Redis related errors:

Here’s the full stacktrace of Redis::ConnectionError one which is the most common:

Errno::ECONNRESET: Connection reset by peer
  from redis-client (0.11.1) lib/redis_client/ruby_connection/buffered_io.rb:145:in `block in fill_buffer'
  from redis-client (0.11.1) lib/redis_client/ruby_connection/buffered_io.rb:122:in `loop'
  from redis-client (0.11.1) lib/redis_client/ruby_connection/buffered_io.rb:122:in `fill_buffer'
  from redis-client (0.11.1) lib/redis_client/ruby_connection/buffered_io.rb:114:in `ensure_remaining'
  from redis-client (0.11.1) lib/redis_client/ruby_connection/buffered_io.rb:85:in `getbyte'
  from redis-client (0.11.1) lib/redis_client/ruby_connection/resp3.rb:113:in `parse'
  from redis-client (0.11.1) lib/redis_client/ruby_connection/resp3.rb:50:in `load'
  from redis-client (0.11.1) lib/redis_client/ruby_connection.rb:125:in `block in read'
  from redis-client (0.11.1) lib/redis_client/ruby_connection/buffered_io.rb:48:in `with_timeout'
  from redis-client (0.11.1) lib/redis_client/ruby_connection.rb:125:in `read'
  from redis-client (0.11.1) lib/redis_client/connection_mixin.rb:18:in `call'
  from redis-client (0.11.1) lib/redis_client.rb:281:in `block (2 levels) in blocking_call_v'
  from redis-client (0.11.1) lib/redis_client/middlewares.rb:16:in `call'
  from redis-client (0.11.1) lib/redis_client.rb:280:in `block in blocking_call_v'
  from redis-client (0.11.1) lib/redis_client.rb:616:in `ensure_connected'
  from redis-client (0.11.1) lib/redis_client.rb:279:in `blocking_call_v'
  from redis (5.0.5) lib/redis/client.rb:86:in `blocking_call_v'
  from redis (5.0.5) lib/redis.rb:173:in `block in send_blocking_command'
  from redis (5.0.5) lib/redis.rb:172:in `synchronize'
  from redis (5.0.5) lib/redis.rb:172:in `send_blocking_command'
  from redis (5.0.5) lib/redis/commands/lists.rb:266:in `_bpop'
  from redis (5.0.5) lib/redis/commands/lists.rb:167:in `brpop'
  from sidekiq (6.5.5) lib/sidekiq/fetch.rb:49:in `block in retrieve_work'
  from sidekiq (6.5.5) lib/sidekiq.rb:164:in `block in redis'
  from connection_pool (2.3.0) lib/connection_pool.rb:65:in `block (2 levels) in with'
  from connection_pool (2.3.0) lib/connection_pool.rb:64:in `handle_interrupt'
  from connection_pool (2.3.0) lib/connection_pool.rb:64:in `block in with'
  from connection_pool (2.3.0) lib/connection_pool.rb:61:in `handle_interrupt'
  from connection_pool (2.3.0) lib/connection_pool.rb:61:in `with'
  from sidekiq (6.5.5) lib/sidekiq.rb:161:in `redis'
  from sidekiq (6.5.5) lib/sidekiq/component.rb:26:in `redis'
  from sidekiq (6.5.5) lib/sidekiq/fetch.rb:49:in `retrieve_work'
  from sidekiq (6.5.5) lib/sidekiq/processor.rb:83:in `get_one'
  from sidekiq (6.5.5) lib/sidekiq/processor.rb:95:in `fetch'
  from sidekiq (6.5.5) lib/sidekiq/processor.rb:77:in `process_one'
  from sidekiq (6.5.5) lib/sidekiq/processor.rb:68:in `run'
  from sidekiq (6.5.5) lib/sidekiq/component.rb:8:in `watchdog'
  from sidekiq (6.5.5) lib/sidekiq/component.rb:17:in `block in safe_thread'
RedisClient::ConnectionError: Connection reset by peer
  from redis-client (0.11.1) lib/redis_client/ruby_connection.rb:130:in `rescue in read'
  from redis-client (0.11.1) lib/redis_client/ruby_connection.rb:121:in `read'
  from redis-client (0.11.1) lib/redis_client/connection_mixin.rb:18:in `call'
  from redis-client (0.11.1) lib/redis_client.rb:281:in `block (2 levels) in blocking_call_v'
  from redis-client (0.11.1) lib/redis_client/middlewares.rb:16:in `call'
  from redis-client (0.11.1) lib/redis_client.rb:280:in `block in blocking_call_v'
  from redis-client (0.11.1) lib/redis_client.rb:616:in `ensure_connected'
  from redis-client (0.11.1) lib/redis_client.rb:279:in `blocking_call_v'
  from redis (5.0.5) lib/redis/client.rb:86:in `blocking_call_v'
  from redis (5.0.5) lib/redis.rb:173:in `block in send_blocking_command'
  from redis (5.0.5) lib/redis.rb:172:in `synchronize'
  from redis (5.0.5) lib/redis.rb:172:in `send_blocking_command'
  from redis (5.0.5) lib/redis/commands/lists.rb:266:in `_bpop'
  from redis (5.0.5) lib/redis/commands/lists.rb:167:in `brpop'
  from sidekiq (6.5.5) lib/sidekiq/fetch.rb:49:in `block in retrieve_work'
  from sidekiq (6.5.5) lib/sidekiq.rb:164:in `block in redis'
  from connection_pool (2.3.0) lib/connection_pool.rb:65:in `block (2 levels) in with'
  from connection_pool (2.3.0) lib/connection_pool.rb:64:in `handle_interrupt'
  from connection_pool (2.3.0) lib/connection_pool.rb:64:in `block in with'
  from connection_pool (2.3.0) lib/connection_pool.rb:61:in `handle_interrupt'
  from connection_pool (2.3.0) lib/connection_pool.rb:61:in `with'
  from sidekiq (6.5.5) lib/sidekiq.rb:161:in `redis'
  from sidekiq (6.5.5) lib/sidekiq/component.rb:26:in `redis'
  from sidekiq (6.5.5) lib/sidekiq/fetch.rb:49:in `retrieve_work'
  from sidekiq (6.5.5) lib/sidekiq/processor.rb:83:in `get_one'
  from sidekiq (6.5.5) lib/sidekiq/processor.rb:95:in `fetch'
  from sidekiq (6.5.5) lib/sidekiq/processor.rb:77:in `process_one'
  from sidekiq (6.5.5) lib/sidekiq/processor.rb:68:in `run'
  from sidekiq (6.5.5) lib/sidekiq/component.rb:8:in `watchdog'
  from sidekiq (6.5.5) lib/sidekiq/component.rb:17:in `block in safe_thread'

I have Sidekiq concurrency set to 2 and it is processing everything eventually it seems. But there are failures in the app code as well, and that’s not great :grimacing:

I’m on the free redis plan with redis 5.0.5 and redis-client 0.11.1 gems. My code is open source if there’s anything of interest.