From e10b19b2df86e61ea880d758671efb89641ea9f7 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Fri, 2 Feb 2024 15:56:52 -0500 Subject: [PATCH 01/14] Update sidekiq to version 7.2.0 --- Gemfile | 5 +++-- Gemfile.lock | 28 +++++++++++++++------------- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/Gemfile b/Gemfile index 247865aacfd..8cc52528de7 100644 --- a/Gemfile +++ b/Gemfile @@ -53,6 +53,7 @@ gem 'ed25519', '~> 1.3' gem 'fast_blank', '~> 1.0' gem 'fastimage' gem 'hiredis', '~> 0.6' +gem 'hiredis-client' gem 'htmlentities', '~> 4.3' gem 'http', '~> 5.2.0' gem 'http_accept_language', '~> 2.1' @@ -82,10 +83,10 @@ gem 'rqrcode', '~> 2.2' gem 'ruby-progressbar', '~> 1.13' gem 'sanitize', '~> 6.0' gem 'scenic', '~> 1.7' -gem 'sidekiq', '~> 6.5' +gem 'sidekiq', '< 8' gem 'sidekiq-bulk', '~> 0.2.0' gem 'sidekiq-scheduler', '~> 5.0' -gem 'sidekiq-unique-jobs', '~> 7.1' +gem 'sidekiq-unique-jobs', '> 8' gem 'simple_form', '~> 5.2' gem 'simple-navigation', '~> 4.4' gem 'stoplight', '~> 4.1' diff --git a/Gemfile.lock b/Gemfile.lock index fda00ca467e..21dbfb06f29 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -308,6 +308,8 @@ GEM json highline (3.0.1) hiredis (0.6.3) + hiredis-client (0.14.1) + redis-client (= 0.14.1) hkdf (0.3.0) htmlentities (4.3.4) http (5.2.0) @@ -681,8 +683,8 @@ GEM psych (>= 4.0.0) redcarpet (3.6.0) redis (4.8.1) - redis-namespace (1.11.0) - redis (>= 4) + redis-client (0.14.1) + connection_pool redlock (1.3.2) redis (>= 3.0.0, < 6.0) regexp_parser (2.9.0) @@ -780,22 +782,22 @@ GEM rubyzip (>= 1.2.2, < 3.0) websocket (~> 1.0) semantic_range (3.0.0) - sidekiq (6.5.12) - connection_pool (>= 2.2.5, < 3) - rack (~> 2.0) - redis (>= 4.5.0, < 5) + sidekiq (7.2.0) + concurrent-ruby (< 2) + connection_pool (>= 2.3.0) + rack (>= 2.2.4) + redis-client (>= 0.14.0) sidekiq-bulk (0.2.0) sidekiq sidekiq-scheduler (5.0.3) rufus-scheduler (~> 3.2) sidekiq (>= 6, < 8) tilt (>= 1.4.0) - sidekiq-unique-jobs (7.1.33) + sidekiq-unique-jobs (8.0.5) brpoplpush-redis_script (> 0.1.1, <= 2.0.0) concurrent-ruby (~> 1.0, >= 1.0.5) - redis (< 5.0) - sidekiq (>= 5.0, < 7.0) - thor (>= 0.20, < 3.0) + sidekiq (>= 7.0.0, < 8.0.0) + thor (>= 1.0, < 3.0) simple-navigation (4.4.0) activesupport (>= 2.3.2) simple_form (5.3.0) @@ -940,6 +942,7 @@ DEPENDENCIES haml_lint hcaptcha (~> 7.1) hiredis (~> 0.6) + hiredis-client htmlentities (~> 4.3) http (~> 5.2.0) http_accept_language (~> 2.1) @@ -1008,7 +1011,6 @@ DEPENDENCIES rdf-normalize (~> 0.5) redcarpet (~> 3.6) redis (~> 4.5) - redis-namespace (~> 1.10) rqrcode (~> 2.2) rspec-github (~> 2.4) rspec-rails (~> 6.0) @@ -1024,10 +1026,10 @@ DEPENDENCIES sanitize (~> 6.0) scenic (~> 1.7) selenium-webdriver - sidekiq (~> 6.5) + sidekiq (< 8) sidekiq-bulk (~> 0.2.0) sidekiq-scheduler (~> 5.0) - sidekiq-unique-jobs (~> 7.1) + sidekiq-unique-jobs (> 8) simple-navigation (~> 4.4) simple_form (~> 5.2) simplecov (~> 0.22) From d8d5a9b530d8393e23f1110e21853ca5b5a22800 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Fri, 2 Feb 2024 15:57:26 -0500 Subject: [PATCH 02/14] Use new sidekiq redis info style --- app/workers/scheduler/self_destruct_scheduler.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/workers/scheduler/self_destruct_scheduler.rb b/app/workers/scheduler/self_destruct_scheduler.rb index d0b6ce8a076..645d9573215 100644 --- a/app/workers/scheduler/self_destruct_scheduler.rb +++ b/app/workers/scheduler/self_destruct_scheduler.rb @@ -20,7 +20,7 @@ class Scheduler::SelfDestructScheduler private def sidekiq_overwhelmed? - redis_mem_info = Sidekiq.redis_info + redis_mem_info = Sidekiq.default_configuration.redis_info Sidekiq::Stats.new.enqueued > MAX_ENQUEUED || redis_mem_info['used_memory'].to_f > redis_mem_info['total_system_memory'].to_f * MAX_REDIS_MEM_USAGE end From bb84c1c71bba4ac6fcedd268d0b2486963122dcf Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Fri, 2 Feb 2024 15:58:11 -0500 Subject: [PATCH 03/14] Work around sidekiq inline/fake setting issue --- spec/rails_helper.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index d8eb561d424..deedf6b8400 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -26,7 +26,9 @@ WebMock.disable_net_connect!( allow_localhost: true, allow: Chewy.settings[:host] ) -Sidekiq.logger = nil +Sidekiq.configure_server do |config| + config.logger = nil +end DatabaseCleaner.strategy = [:deletion] From f2e9a624c37ddad4b508dc16e17eda6024bcc466 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Fri, 2 Feb 2024 15:58:59 -0500 Subject: [PATCH 04/14] Remove redis namespace extension --- config/application.rb | 1 - lib/redis/namespace_extensions.rb | 12 ------------ 2 files changed, 13 deletions(-) delete mode 100644 lib/redis/namespace_extensions.rb diff --git a/config/application.rb b/config/application.rb index 402c7f0614d..d98d021825a 100644 --- a/config/application.rb +++ b/config/application.rb @@ -24,7 +24,6 @@ Bundler.require(*Rails.groups) require_relative '../lib/exceptions' require_relative '../lib/sanitize_ext/sanitize_config' -require_relative '../lib/redis/namespace_extensions' require_relative '../lib/paperclip/url_generator_extensions' require_relative '../lib/paperclip/attachment_extensions' require_relative '../lib/paperclip/lazy_thumbnail' diff --git a/lib/redis/namespace_extensions.rb b/lib/redis/namespace_extensions.rb deleted file mode 100644 index 9af59c296e3..00000000000 --- a/lib/redis/namespace_extensions.rb +++ /dev/null @@ -1,12 +0,0 @@ -# frozen_string_literal: true - -class Redis - module NamespaceExtensions - def exists?(...) - call_with_namespace('exists?', ...) - end - end -end - -Redis::Namespace::COMMANDS['exists?'] = [:first] -Redis::Namespace.prepend(Redis::NamespaceExtensions) From 7ea4f469eb02a3227279d03fab1f5bd326ed7ade Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Fri, 2 Feb 2024 15:59:48 -0500 Subject: [PATCH 05/14] Remove namespace from streaming server manager --- spec/support/streaming_server_manager.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/spec/support/streaming_server_manager.rb b/spec/support/streaming_server_manager.rb index 3facf16b8eb..a275b48c564 100644 --- a/spec/support/streaming_server_manager.rb +++ b/spec/support/streaming_server_manager.rb @@ -17,7 +17,6 @@ class StreamingServerManager @running_thread = Thread.new do Open3.popen2e( { - 'REDIS_NAMESPACE' => ENV.fetch('REDIS_NAMESPACE'), 'DB_NAME' => "#{ENV.fetch('DB_NAME', 'mastodon')}_test#{ENV.fetch('TEST_ENV_NUMBER', '')}", 'RAILS_ENV' => ENV.fetch('RAILS_ENV', 'test'), 'NODE_ENV' => ENV.fetch('STREAMING_NODE_ENV', 'development'), From 38cd3160d39415ec2c702d571afee3a8f8f64d9c Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Fri, 2 Feb 2024 16:00:21 -0500 Subject: [PATCH 06/14] Silence redis information from sidekiq --- config/initializers/sidekiq.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb index 53b02edc402..604882869ab 100644 --- a/config/initializers/sidekiq.rb +++ b/config/initializers/sidekiq.rb @@ -41,7 +41,7 @@ Sidekiq.configure_client do |config| end end -Sidekiq.logger.level = ::Logger.const_get(ENV.fetch('RAILS_LOG_LEVEL', 'info').upcase.to_s) +Sidekiq.default_configuration.logger.level = ::Logger.const_get(ENV.fetch('RAILS_LOG_LEVEL', 'warn').upcase.to_s) SidekiqUniqueJobs.configure do |config| config.enabled = !Rails.env.test? From e8cdb5b40d65960f6e94031cc07a9cb3d7a5bb88 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Fri, 2 Feb 2024 16:00:44 -0500 Subject: [PATCH 07/14] Placeholder for ES namespace --- config/initializers/chewy.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/initializers/chewy.rb b/config/initializers/chewy.rb index 0d9fc75e994..18990e61a0b 100644 --- a/config/initializers/chewy.rb +++ b/config/initializers/chewy.rb @@ -5,7 +5,7 @@ host = ENV.fetch('ES_HOST') { 'localhost' } port = ENV.fetch('ES_PORT') { 9200 } user = ENV.fetch('ES_USER', nil).presence password = ENV.fetch('ES_PASS', nil).presence -fallback_prefix = ENV.fetch('REDIS_NAMESPACE', nil).presence +fallback_prefix = ENV.fetch('TODO_PLACEHOLDER', nil).presence prefix = ENV.fetch('ES_PREFIX') { fallback_prefix } ca_file = ENV.fetch('ES_CA_FILE', nil).presence From 446f36aa3fea1390fcb3b903002a8df6514200a9 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Fri, 2 Feb 2024 16:01:10 -0500 Subject: [PATCH 08/14] Remove prefix from streaming server --- streaming/index.js | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/streaming/index.js b/streaming/index.js index 154ecbc02c5..4834430cc1e 100644 --- a/streaming/index.js +++ b/streaming/index.js @@ -228,7 +228,6 @@ const pgConfigFromEnv = (env) => { /** * @typedef RedisConfiguration * @property {import('ioredis').RedisOptions} redisParams - * @property {string} redisPrefix * @property {string|undefined} redisUrl */ @@ -237,10 +236,6 @@ const pgConfigFromEnv = (env) => { * @returns {RedisConfiguration} configuration for the Redis connection */ const redisConfigFromEnv = (env) => { - // ioredis *can* transparently add prefixes for us, but it doesn't *in some cases*, - // which means we can't use it. But this is something that should be looked into. - const redisPrefix = env.REDIS_NAMESPACE ? `${env.REDIS_NAMESPACE}:` : ''; - let redisPort = parseIntFromEnv(env.REDIS_PORT, 6379, 'REDIS_PORT'); let redisDatabase = parseIntFromEnv(env.REDIS_DB, 0, 'REDIS_DB'); @@ -259,7 +254,6 @@ const redisConfigFromEnv = (env) => { return { redisParams, - redisPrefix, redisUrl: typeof env.REDIS_URL === 'string' ? env.REDIS_URL : undefined, }; }; @@ -382,7 +376,6 @@ const startServer = async () => { const redisConfig = redisConfigFromEnv(process.env); const redisSubscribeClient = await createRedisClient(redisConfig); const redisClient = await createRedisClient(redisConfig); - const { redisPrefix } = redisConfig; const metrics = setupMetrics(CHANNEL_NAMES, pgPool); // TODO: migrate all metrics to metrics.X.method() instead of just X.method() @@ -422,7 +415,7 @@ const startServer = async () => { const interval = 6 * 60; const tellSubscribed = () => { - channels.forEach(channel => redisClient.set(`${redisPrefix}subscribed:${channel}`, '1', 'EX', interval * 3)); + channels.forEach(channel => redisClient.set(`subscribed:${channel}`, '1', 'EX', interval * 3)); }; tellSubscribed(); @@ -443,7 +436,7 @@ const startServer = async () => { const callbacks = subs[channel]; - logger.debug(`New message on channel ${redisPrefix}${channel}`); + logger.debug(`New message on channel ${channel}`); if (!callbacks) { return; @@ -697,14 +690,14 @@ const startServer = async () => { }); res.on('close', () => { - unsubscribe(`${redisPrefix}${accessTokenChannelId}`, listener); - unsubscribe(`${redisPrefix}${systemChannelId}`, listener); + unsubscribe(`${accessTokenChannelId}`, listener); + unsubscribe(`${systemChannelId}`, listener); connectedChannels.labels({ type: 'eventsource', channel: 'system' }).dec(2); }); - subscribe(`${redisPrefix}${accessTokenChannelId}`, listener); - subscribe(`${redisPrefix}${systemChannelId}`, listener); + subscribe(`${accessTokenChannelId}`, listener); + subscribe(`${systemChannelId}`, listener); connectedChannels.labels({ type: 'eventsource', channel: 'system' }).inc(2); }; @@ -1034,11 +1027,11 @@ const startServer = async () => { }; channelIds.forEach(id => { - subscribe(`${redisPrefix}${id}`, listener); + subscribe(`${id}`, listener); }); if (typeof attachCloseHandler === 'function') { - attachCloseHandler(channelIds.map(id => `${redisPrefix}${id}`), listener); + attachCloseHandler(channelIds.map(id => `${id}`), listener); } return listener; @@ -1385,7 +1378,7 @@ const startServer = async () => { } channelIds.forEach(channelId => { - unsubscribe(`${redisPrefix}${channelId}`, subscription.listener); + unsubscribe(`${channelId}`, subscription.listener); }); connectedChannels.labels({ type: 'websocket', channel: subscription.channelName }).dec(); @@ -1429,8 +1422,8 @@ const startServer = async () => { }, }); - subscribe(`${redisPrefix}${accessTokenChannelId}`, listener); - subscribe(`${redisPrefix}${systemChannelId}`, listener); + subscribe(`${accessTokenChannelId}`, listener); + subscribe(`${systemChannelId}`, listener); subscriptions[accessTokenChannelId] = { channelName: 'system', From b4f7d0783af86d8da737976986f45356f6bbb244 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Fri, 2 Feb 2024 16:01:37 -0500 Subject: [PATCH 09/14] Remove namespace from redis config --- .../dimension/software_versions_dimension.rb | 6 +----- .../dimension/space_usage_dimension.rb | 6 +----- app/lib/redis_configuration.rb | 20 +------------------ lib/mastodon/redis_config.rb | 10 ++-------- 4 files changed, 5 insertions(+), 37 deletions(-) diff --git a/app/lib/admin/metrics/dimension/software_versions_dimension.rb b/app/lib/admin/metrics/dimension/software_versions_dimension.rb index ccf556eae08..22d0d599955 100644 --- a/app/lib/admin/metrics/dimension/software_versions_dimension.rb +++ b/app/lib/admin/metrics/dimension/software_versions_dimension.rb @@ -75,10 +75,6 @@ class Admin::Metrics::Dimension::SoftwareVersionsDimension < Admin::Metrics::Dim end def redis_info - @redis_info ||= if redis.is_a?(Redis::Namespace) - redis.redis.info - else - redis.info - end + @redis_info ||= redis.info end end diff --git a/app/lib/admin/metrics/dimension/space_usage_dimension.rb b/app/lib/admin/metrics/dimension/space_usage_dimension.rb index f1b6dba0403..37b220da8d9 100644 --- a/app/lib/admin/metrics/dimension/space_usage_dimension.rb +++ b/app/lib/admin/metrics/dimension/space_usage_dimension.rb @@ -59,11 +59,7 @@ class Admin::Metrics::Dimension::SpaceUsageDimension < Admin::Metrics::Dimension end def redis_info - @redis_info ||= if redis.is_a?(Redis::Namespace) - redis.redis.info - else - redis.info - end + @redis_info ||= redis.info end def search_size diff --git a/app/lib/redis_configuration.rb b/app/lib/redis_configuration.rb index f0e86d985b8..b7da5264093 100644 --- a/app/lib/redis_configuration.rb +++ b/app/lib/redis_configuration.rb @@ -23,28 +23,10 @@ class RedisConfiguration end def connection - if namespace? - Redis::Namespace.new(namespace, redis: raw_connection) - else - raw_connection - end - end - - def namespace? - namespace.present? - end - - def namespace - ENV.fetch('REDIS_NAMESPACE', nil) + Redis.new(url: url, driver: :hiredis) end def url ENV['REDIS_URL'] end - - private - - def raw_connection - Redis.new(url: url, driver: :hiredis) - end end diff --git a/lib/mastodon/redis_config.rb b/lib/mastodon/redis_config.rb index 10672a53587..b6fc4767421 100644 --- a/lib/mastodon/redis_config.rb +++ b/lib/mastodon/redis_config.rb @@ -26,15 +26,11 @@ setup_redis_env_url setup_redis_env_url(:cache, false) setup_redis_env_url(:sidekiq, false) -namespace = ENV.fetch('REDIS_NAMESPACE', nil) -cache_namespace = namespace ? "#{namespace}_cache" : 'cache' -sidekiq_namespace = namespace - REDIS_CACHE_PARAMS = { driver: :hiredis, url: ENV['CACHE_REDIS_URL'], expires_in: 10.minutes, - namespace: "#{cache_namespace}:7.1", + db: 1, connect_timeout: 5, pool: { size: Sidekiq.server? ? Sidekiq[:concurrency] : Integer(ENV['MAX_THREADS'] || 5), @@ -44,8 +40,6 @@ REDIS_CACHE_PARAMS = { REDIS_SIDEKIQ_PARAMS = { driver: :hiredis, + db: 0, url: ENV['SIDEKIQ_REDIS_URL'], - namespace: sidekiq_namespace, }.freeze - -ENV['REDIS_NAMESPACE'] = "mastodon_test#{ENV['TEST_ENV_NUMBER']}" if Rails.env.test? From 14590392b6a86b9ef35a3b9acfe6cb1de25c301e Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Tue, 13 Feb 2024 09:46:12 -0500 Subject: [PATCH 10/14] Update sidekiq-unique-jobs to version 8.0.9 --- Gemfile.lock | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 21dbfb06f29..43f7fe93099 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -140,9 +140,6 @@ GEM brakeman (6.1.2) racc browser (5.3.1) - brpoplpush-redis_script (0.1.3) - concurrent-ruby (~> 1.0, >= 1.0.5) - redis (>= 1.0, < 6) builder (3.2.4) bundler-audit (0.9.1) bundler (>= 1.2.0, < 3) @@ -793,8 +790,7 @@ GEM rufus-scheduler (~> 3.2) sidekiq (>= 6, < 8) tilt (>= 1.4.0) - sidekiq-unique-jobs (8.0.5) - brpoplpush-redis_script (> 0.1.1, <= 2.0.0) + sidekiq-unique-jobs (8.0.9) concurrent-ruby (~> 1.0, >= 1.0.5) sidekiq (>= 7.0.0, < 8.0.0) thor (>= 1.0, < 3.0) From 6de93c50b5efa1cd15e7a4bbed521358e72f8ef5 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Fri, 16 Feb 2024 12:24:39 -0500 Subject: [PATCH 11/14] Replace redis namespace stub with pipelined connection --- spec/models/user_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index fa0a0503a65..874e9412065 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -469,7 +469,7 @@ RSpec.describe User do let!(:access_token) { Fabricate(:access_token, resource_owner_id: user.id) } let!(:web_push_subscription) { Fabricate(:web_push_subscription, access_token: access_token) } - let(:redis_pipeline_stub) { instance_double(Redis::Namespace, publish: nil) } + let(:redis_pipeline_stub) { instance_double(Redis::PipelinedConnection, publish: nil) } before do allow(redis).to receive(:pipelined).and_yield(redis_pipeline_stub) From 452facb9081cbeefc63b0981d9eb92ae394b7cf8 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Fri, 23 Feb 2024 17:23:53 -0500 Subject: [PATCH 12/14] Update sidekiq-unique-jobs to version 8.0.10 --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 43f7fe93099..663068957ea 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -790,7 +790,7 @@ GEM rufus-scheduler (~> 3.2) sidekiq (>= 6, < 8) tilt (>= 1.4.0) - sidekiq-unique-jobs (8.0.9) + sidekiq-unique-jobs (8.0.10) concurrent-ruby (~> 1.0, >= 1.0.5) sidekiq (>= 7.0.0, < 8.0.0) thor (>= 1.0, < 3.0) From 014874239627beb3bd807e1f855a6d8822ec90ff Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Mon, 22 Apr 2024 09:54:53 -0400 Subject: [PATCH 13/14] Remove redis-namespace from Gemfile --- Gemfile | 1 - 1 file changed, 1 deletion(-) diff --git a/Gemfile b/Gemfile index 8cc52528de7..814b8f2ffd7 100644 --- a/Gemfile +++ b/Gemfile @@ -78,7 +78,6 @@ gem 'rack-cors', '~> 2.0', require: 'rack/cors' gem 'rails-i18n', '~> 7.0' gem 'redcarpet', '~> 3.6' gem 'redis', '~> 4.5', require: ['redis', 'redis/connection/hiredis'] -gem 'redis-namespace', '~> 1.10' gem 'rqrcode', '~> 2.2' gem 'ruby-progressbar', '~> 1.13' gem 'sanitize', '~> 6.0' From 814c86834235ef8f2a4409a6a6520e60bb3b2aab Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Thu, 2 May 2024 15:28:14 -0400 Subject: [PATCH 14/14] Update sidekiq to version 7.2.4 --- Gemfile.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 663068957ea..b4568eba23d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -305,8 +305,8 @@ GEM json highline (3.0.1) hiredis (0.6.3) - hiredis-client (0.14.1) - redis-client (= 0.14.1) + hiredis-client (0.22.1) + redis-client (= 0.22.1) hkdf (0.3.0) htmlentities (4.3.4) http (5.2.0) @@ -680,7 +680,7 @@ GEM psych (>= 4.0.0) redcarpet (3.6.0) redis (4.8.1) - redis-client (0.14.1) + redis-client (0.22.1) connection_pool redlock (1.3.2) redis (>= 3.0.0, < 6.0) @@ -779,11 +779,11 @@ GEM rubyzip (>= 1.2.2, < 3.0) websocket (~> 1.0) semantic_range (3.0.0) - sidekiq (7.2.0) + sidekiq (7.2.4) concurrent-ruby (< 2) connection_pool (>= 2.3.0) rack (>= 2.2.4) - redis-client (>= 0.14.0) + redis-client (>= 0.19.0) sidekiq-bulk (0.2.0) sidekiq sidekiq-scheduler (5.0.3)