mhenrixon/sidekiq-unique-jobs

Sidekiq 7: Unsupported command argument type: TrueClass

olegantonyan opened this issue · 1 comments

I'm trying to upgrade sidekiq to 7 in a big project

sidekiq.1 | 2023-11-06T15:46:35.939Z pid=30335 tid=h87 WARN: TypeError: Unsupported command argument type: TrueClass
sidekiq.1 | 2023-11-06T15:46:35.940Z pid=30335 tid=h87 WARN: redis-client (0.18.0) lib/redis_client/command_builder.rb:37:in `block in generate'
sidekiq.1 | redis-client (0.18.0) lib/redis_client/command_builder.rb:28:in `map!'
sidekiq.1 | redis-client (0.18.0) lib/redis_client/command_builder.rb:28:in `generate'
sidekiq.1 | redis-client (0.18.0) lib/redis_client.rb:253:in `call'
sidekiq.1 | sidekiq (7.2.0) lib/sidekiq/redis_client_adapter.rb:36:in `block (2 levels) in <module:CompatMethods>'
sidekiq.1 | sidekiq-unique-jobs (8.0.3) lib/sidekiq_unique_jobs/orphans/manager.rb:195:in `block in register_reaper_process'
sidekiq.1 | redis-client (0.18.0) lib/redis_client/decorator.rb:46:in `block in with'
sidekiq.1 | redis-client (0.18.0) lib/redis_client.rb:219:in `with'
sidekiq.1 | redis-client (0.18.0) lib/redis_client/decorator.rb:46:in `with'
sidekiq.1 | sidekiq-unique-jobs (8.0.3) lib/sidekiq_unique_jobs/connection.rb:16:in `block in redis'
sidekiq.1 | sidekiq (7.2.0) lib/sidekiq/config.rb:163:in `block in redis'
sidekiq.1 | connection_pool (2.4.1) lib/connection_pool.rb:110:in `block (2 levels) in with'
sidekiq.1 | connection_pool (2.4.1) lib/connection_pool.rb:109:in `handle_interrupt'
sidekiq.1 | connection_pool (2.4.1) lib/connection_pool.rb:109:in `block in with'
sidekiq.1 | connection_pool (2.4.1) lib/connection_pool.rb:106:in `handle_interrupt'
sidekiq.1 | connection_pool (2.4.1) lib/connection_pool.rb:106:in `with'
sidekiq.1 | sidekiq (7.2.0) lib/sidekiq/config.rb:160:in `redis'
sidekiq.1 | sidekiq (7.2.0) lib/sidekiq.rb:73:in `redis'

Usially this means some problem in my code, but looking into lib/sidekiq_unique_jobs/orphans/manager.rb:195:

      def register_reaper_process
        redis { |conn| conn.set(UNIQUE_REAPER, current_timestamp, nx: true, ex: drift_reaper_interval) }
      end

"true" is passed here, but as I understand th change to redis api in sidekiq it's no longer allowed. Am I missing something?

sidekiq-unique-jobs (8.0.3)
sidekiq (7.2.0)
sidekiq-limit_fetch (3.4.0)
sidekiq-scheduler (5.0.3)
sidekiq-status (3.0.3)
sentry-sidekiq (= 5.0.2)

Will be closed by #815