Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

perform_in not working in version 4.0.9 #150

Closed
kapso opened this issue Nov 22, 2015 · 10 comments
Closed

perform_in not working in version 4.0.9 #150

kapso opened this issue Nov 22, 2015 · 10 comments

Comments

@kapso
Copy link

kapso commented Nov 22, 2015

Both perform_in and perform_at are not working. perform_async does work.

I am running version 4.0.9 with Sidekiq version 4.0.1, Redis version 2.8.3

When I run the following code, perform method does not get executed

pry(main)> NotifyWorker.perform_in(1.seconds, 183, "xxxx")
=> "87891b3cc0910d7f0e52e905"
class NotifyWorker < BaseWorker
  sidekiq_options queue: :notify_worker,
                  unique: :until_executing

  def perform(id, blob)
    puts "NotifyWorker -- #{id}"
  end
end

I am running into so many issues when upgrading to sidekiq-unique-jobs v4, think I have opened few tickets already, is it safe to upgrade to v4 or best to run v3?

@mhenrixon
Copy link
Owner

It should be safe to upgrade Sidekiq but apparently you are running into some problem with it. Are you certain your jobs are being processed? I mean are your workers really doing its thing? Sidekiq now needs more connections to redis for workers. Could that be related maybe?

@kapso
Copy link
Author

kapso commented Nov 22, 2015

Yea Sidekiq upgrade went fine, plenty of room for connections, so I don't think that's the issue.

via mobile device, please excuse typos and terseness.

On Nov 22, 2015, at 4:08 AM, Mikael Henriksson [email protected] wrote:

It should be safe to upgrade Sidekiq but apparently you are running into some problem with it. Are you certain your jobs are being processed? I mean are your workers really doing its thing? Sidekiq now needs more connections to redis for workers. Could that be related maybe?


Reply to this email directly or view it on GitHub.

@kapso
Copy link
Author

kapso commented Nov 23, 2015

And sorry I meant is it safe to upgrade to sidekiq-unique-jobs v4 given I have run into so many issues or best to keep running v3?

@morr
Copy link

morr commented Nov 25, 2015

I had similar issue when using activejob with sidekiq

test task
uniqueness strategy :until_executed

class UniquenessTest < ActiveJob::Base
  def perform num
    10.times do |i|
      puts "#{num} #{i}"
      sleep 1
    end
  end
end

set Sidekiq.logger.level = 0 in config

sidekiq output when i run UniquenessTest.perform_later 'b':

INFO: Performing UniquenessTest from Sidekiq(default) with arguments: "b"
b 0
b 1
b 2
b 3
b 4
b 5
b 6
b 7
b 8
b 9
INFO: Performed UniquenessTest from Sidekiq(default) in 10034.7ms
SidekiqUniqueJobs::UniqueArgs DEBUG: #filtered_args [{"job_class"=>"UniquenessTest", "job_id"=>"37af4d9e-4f39-4844-9239-cb46eee9a15b", "queue_name"=>"default", "arguments"=>["b"], "locale"=>"ru"}] => [{"job_class"=>"UniquenessTest", "job_id"=>"37af4d9e-4f39-4844-9239-cb46eee9a15b", "queue_name"=>"default", "arguments"=>["b"], "locale"=>"ru"}]
SidekiqUniqueJobs::UniqueArgs DEBUG: filter_by_proc : [{"job_class"=>"UniquenessTest", "job_id"=>"37af4d9e-4f39-4844-9239-cb46eee9a15b", "queue_name"=>"default", "arguments"=>["b"], "locale"=>"ru"}] -> [{"job_class"=>"UniquenessTest", "queue_name"=>"default", "arguments"=>["b"], "locale"=>"ru"}]
DEBUG: unique_digest : {"class"=>"ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper", "queue"=>"default", "unique_args"=>[{"job_class"=>"UniquenessTest", "queue_name"=>"default", "arguments"=>["b"], "locale"=>"ru"}]} into uniquejobs:799a32d0b9af2822190bbe2befcaffde
DEBUG: successfully unlocked uniquejobs:799a32d0b9af2822190bbe2befcaffde
INFO: done: 10.041 sec

sidekiq output when i run UniquenessTest.set(wait: 1.second).perform_later 'b':

SidekiqUniqueJobs::UniqueArgs DEBUG: #filtered_args [{"job_class"=>"UniquenessTest", "job_id"=>"f296c51e-9d59-4e55-8536-ed708960b9d9", "queue_name"=>"default", "arguments"=>["b"], "locale"=>"ru"}] => [{"job_class"=>"UniquenessTest", "job_id"=>"f296c51e-9d59-4e55-8536-ed708960b9d9", "queue_name"=>"default", "arguments"=>["b"], "locale"=>"ru"}]
SidekiqUniqueJobs::UniqueArgs DEBUG: filter_by_proc : [{"job_class"=>"UniquenessTest", "job_id"=>"f296c51e-9d59-4e55-8536-ed708960b9d9", "queue_name"=>"default", "arguments"=>["b"], "locale"=>"ru"}] -> [{"job_class"=>"UniquenessTest", "queue_name"=>"default", "arguments"=>["b"], "locale"=>"ru"}]
DEBUG: unique_digest : {"class"=>"ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper", "queue"=>"default", "unique_args"=>[{"job_class"=>"UniquenessTest", "queue_name"=>"default", "arguments"=>["b"], "locale"=>"ru"}]} into uniquejobs:799a32d0b9af2822190bbe2befcaffde
DEBUG: failed to aquire lock for uniquejobs:799a32d0b9af2822190bbe2befcaffde
WARN: payload is not unique {"class"=>"ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper", "wrapped"=>"UniquenessTest", "queue"=>"default", "args"=>[{"job_class"=>"UniquenessTest", "job_id"=>"f296c51e-9d59-4e55-8536-ed708960b9d9", "queue_name"=>"default", "arguments"=>["b"], "locale"=>"ru"}], "retry"=>true, "unique"=>"until_executed", "unique_args"=>[{"job_class"=>"UniquenessTest", "queue_name"=>"default", "arguments"=>["b"], "locale"=>"ru"}], "log_duplicate_payload"=>true, "jid"=>"dba6500c03ff7211d0459c8a", "created_at"=>1448463592.3282728, "unique_prefix"=>"uniquejobs", "unique_digest"=>"uniquejobs:799a32d0b9af2822190bbe2befcaffde"}
DEBUG: enqueued schedule: {"class":"ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper","wrapped":"UniquenessTest","queue":"default","args":[{"job_class":"UniquenessTest","job_id":"f296c51e-9d59-4e55-8536-ed708960b9d9","queue_name":"default","arguments":["b"],"locale":"ru"}],"retry":true,"unique":"until_executed","unique_args":[{"job_class":"UniquenessTest","queue_name":"default","arguments":["b"],"locale":"ru"}],"log_duplicate_payload":true,"jid":"dba6500c03ff7211d0459c8a","created_at":1448463592.3282728,"unique_prefix":"uniquejobs","unique_digest":"uniquejobs:799a32d0b9af2822190bbe2befcaffde"}

@morr
Copy link

morr commented Nov 25, 2015

It seems that by design of sidekiq-unique-jobs scheduled task should acquire lock only once, when it is initially scheduled.
But when I schedule task with set(wait: 1.second).perform_later the task tries to acquire lock second time inside sidekiq worker and it fails.
@mhenrixon is it possible to fix such behaviour?

Stacktrace for task started by UniquenessTest.set(wait: 1.second).perform_later 'b':

[21, 30] in /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-unique-jobs-4.0.9/lib/sidekiq_unique_jobs/client/middleware.rb
   21:
   22:       attr_reader :item, :worker_class, :redis_pool, :queue
   23:
   24:       def ordinary_or_locked?
   25:         byebug # binding.pry
=> 26:         unique_disabled? || unlockable? || aquire_lock
   27:       end
   28:
   29:       def unlockable?
   30:         !lockable?
(byebug) bt
--> #0  SidekiqUniqueJobs::Client::Middleware.ordinary_or_locked? at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-unique-jobs-4.0.9/lib/sidekiq_unique_jobs/client/middleware.rb:26
    #1  SidekiqUniqueJobs::Client::Middleware.call(worker_class#String, item#Hash, queue#String, redis_pool#ConnectionPool) at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-unique-jobs-4.0.9/lib/sidekiq_unique_jobs/client/middleware.rb:17
    #2  block in Sidekiq::Middleware::Chain.block in invoke(*args#Array) at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-4.0.1/lib/sidekiq/middleware/chain.rb:129
    ͱ-- #3  Proc.call(*args) at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-4.0.1/lib/sidekiq/middleware/chain.rb:132
    #4  Sidekiq::Middleware::Chain.invoke(*args#Array) at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-4.0.1/lib/sidekiq/middleware/chain.rb:132
    #5  Sidekiq::Client.process_single(worker_class#String, item#Hash) at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-4.0.1/lib/sidekiq/client.rb:204
    #6  Sidekiq::Client.push(item#Hash) at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-4.0.1/lib/sidekiq/client.rb:66
    #7  #<Class:Sidekiq::Client>.push(item#Hash) at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-4.0.1/lib/sidekiq/client.rb:124
    #8  block (2 levels) in Sidekiq::Scheduled::Enq.block (2 levels) in enqueue_jobs(now#String, sorted_sets#Array) at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-4.0.1/lib/sidekiq/scheduled.rb:25
    ͱ-- #9  Array.each at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-4.0.1/lib/sidekiq/scheduled.rb:14
    #10 block in Sidekiq::Scheduled::Enq.block in enqueue_jobs(now#String, sorted_sets#Array) at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-4.0.1/lib/sidekiq/scheduled.rb:14
    #11 block in #<Class:Sidekiq>.block in redis at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-4.0.1/lib/sidekiq.rb:84
    #12 block (2 levels) in ConnectionPool.block (2 levels) in with(options#Hash) at /Users/user/.rvm/gems/ruby-2.2.3/gems/connection_pool-2.2.0/lib/connection_pool.rb:64
    ͱ-- #13 #<Class:Thread>.handle_interrupt() at /Users/user/.rvm/gems/ruby-2.2.3/gems/connection_pool-2.2.0/lib/connection_pool.rb:63
    #14 block in ConnectionPool.block in with(options#Hash) at /Users/user/.rvm/gems/ruby-2.2.3/gems/connection_pool-2.2.0/lib/connection_pool.rb:63
    ͱ-- #15 #<Class:Thread>.handle_interrupt() at /Users/user/.rvm/gems/ruby-2.2.3/gems/connection_pool-2.2.0/lib/connection_pool.rb:60
    #16 ConnectionPool.with(options#Hash) at /Users/user/.rvm/gems/ruby-2.2.3/gems/connection_pool-2.2.0/lib/connection_pool.rb:60
    #17 #<Class:Sidekiq>.redis at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-4.0.1/lib/sidekiq.rb:81
    #18 Sidekiq::Scheduled::Enq.enqueue_jobs(now#String, sorted_sets#Array) at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-4.0.1/lib/sidekiq/scheduled.rb:13
    #19 Sidekiq::Scheduled::Poller.enqueue at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-4.0.1/lib/sidekiq/scheduled.rb:75
    #20 block in Sidekiq::Scheduled::Poller.block in start at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-4.0.1/lib/sidekiq/scheduled.rb:66
    #21 Sidekiq::Util.watchdog(last_words#String) at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-4.0.1/lib/sidekiq/util.rb:16
    #22 block in Side

Stacktrace for task started by UniquenessTest.perform_later 'b':

    1: class UniquenessTest < ActiveJob::Base
    2:   def perform num
    3:     byebug # binding.pry
    4:
=>  5:     10.times do |i|
    6:       puts "#{num} #{i}"
    7:       sleep 1
    8:     end
    9:   end
   10: end
(byebug) bt
--> #0  UniquenessTest.perform(num#String) at /Users/user/Develop/umka/app/jobs/uniqueness_test.rb:5
    #1  block in ActiveJob::Execution.block in perform_now at /Users/user/.rvm/gems/ruby-2.2.3/gems/activejob-4.2.5/lib/active_job/execution.rb:32
    ͱ-- #2  Proc.call(*args) at /Users/user/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:117
    #3  ActiveSupport::Callbacks::Filters::End.call(env#ActiveSupport::Callbacks::Filters::Environment) at /Users/user/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:117
    #4  block (2 levels) in ActiveSupport::Callbacks::CallbackChain.block (2 levels) in compile at /Users/user/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:555
    ͱ-- #5  Proc.call(*args) at /Users/user/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:505
    #6  ActiveSupport::Callbacks::CallbackSequence.call(*args#Array) at /Users/user/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:505
    #7  block (2 levels) in ActiveSupport::Callbacks::CallbackSequence.block (2 levels) in around(&around#Proc) at /Users/user/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:498
    ͱ-- #8  Proc.call(*args) at /Users/user/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:343
    #9  block (2 levels) in #<Class:ActiveSupport::Callbacks::Filters::Around>.block (2 levels) in simple(callback_sequence#ActiveSupport::Callbacks::CallbackSequence, user_callback#Proc) at /Users/user/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:343
    #10 #<Module:0x007ffc4bbd6a60>.with_locale(tmp_locale#String) at /Users/user/.rvm/gems/ruby-2.2.3/gems/i18n-0.7.0/lib/i18n.rb:257
    #11 block (2 levels) in block (2 levels) in <module:Translation> at /Users/user/.rvm/gems/ruby-2.2.3/gems/activejob-4.2.5/lib/active_job/translation.rb:7
    ͱ-- #12 BasicObject.instance_exec(*args) at /Users/user/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:441
    #13 block in ActiveSupport::Callbacks::Callback.block in make_lambda(filter#Proc) at /Users/user/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:441
    ͱ-- #14 Proc.call(*args) at /Users/user/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:342
    #15 block in #<Class:ActiveSupport::Callbacks::Filters::Around>.block in simple(callback_sequence#ActiveSupport::Callbacks::CallbackSequence, user_callback#Proc) at /Users/user/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:342
    ͱ-- #16 Proc.call(*args) at /Users/user/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:497
    #17 block in ActiveSupport::Callbacks::CallbackSequence.block in around(&around#Proc) at /Users/user/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:497
    ͱ-- #18 Proc.call(*args) at /Users/user/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:505
    #19 ActiveSupport::Callbacks::CallbackSequence.call(*args#Array) at /Users/user/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:505
    #20 block (2 levels) in ActiveSupport::Callbacks::CallbackSequence.block (2 levels) in around(&around#Proc) at /Users/user/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:498
    ͱ-- #21 Proc.call(*args) at /Users/user/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:343
    #22 block (2 levels) in #<Class:ActiveSupport::Callbacks::Filters::Around>.block (2 levels) in simple(callback_sequence#ActiveSupport::Callbacks::CallbackSequence, user_callback#Proc) at /Users/user/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:343
    ͱ-- #23 Proc.call(*args) at /Users/user/.rvm/gems/ruby-2.2.3/gems/activejob-4.2.5/lib/active_job/logging.rb:23
    #24 block (4 levels) in block (4 levels) in <module:Logging> at /Users/user/.rvm/gems/ruby-2.2.3/gems/activejob-4.2.5/lib/active_job/logging.rb:23
    #25 block in #<Class:ActiveSupport::Notifications>.block in instrument(name#String, payload#Hash) at /Users/user/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/notifications.rb:164
    #26 ActiveSupport::Notifications::Instrumenter.instrument(name#String, payload#Hash) at /Users/user/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/notifications/instrumenter.rb:20
    #27 #<Class:ActiveSupport::Notifications>.instrument(name#String, payload#Hash) at /Users/user/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/notifications.rb:164
    #28 block (3 levels) in block (3 levels) in <module:Logging> at /Users/user/.rvm/gems/ruby-2.2.3/gems/activejob-4.2.5/lib/active_job/logging.rb:22
    #29 ActiveJob::Logging.tag_logger(*tags#Array) at /Users/user/.rvm/gems/ruby-2.2.3/gems/activejob-4.2.5/lib/active_job/logging.rb:45
    #30 block (2 levels) in block (2 levels) in <module:Logging> at /Users/user/.rvm/gems/ruby-2.2.3/gems/activejob-4.2.5/lib/active_job/logging.rb:19
    ͱ-- #31 BasicObject.instance_exec(*args) at /Users/user/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:441
    #32 block in ActiveSupport::Callbacks::Callback.block in make_lambda(filter#Proc) at /Users/user/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:441
    ͱ-- #33 Proc.call(*args) at /Users/user/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:342
    #34 block in #<Class:ActiveSupport::Callbacks::Filters::Around>.block in simple(callback_sequence#ActiveSupport::Callbacks::CallbackSequence, user_callback#Proc) at /Users/user/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:342
    ͱ-- #35 Proc.call(*args) at /Users/user/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:497
    #36 block in ActiveSupport::Callbacks::CallbackSequence.block in around(&around#Proc) at /Users/user/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:497
    ͱ-- #37 Proc.call(*args) at /Users/user/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:505
    #38 ActiveSupport::Callbacks::CallbackSequence.call(*args#Array) at /Users/user/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:505
    #39 ActiveSupport::Callbacks.__run_callbacks__(callbacks#ActiveSupport::Callbacks::CallbackChain, &block#Proc) at /Users/user/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:92
    #40 ActiveJob::Base._run_perform_callbacks(&block#Proc) at /Users/user/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:778
    #41 ActiveSupport::Callbacks.run_callbacks(kind#Symbol, &block#Proc) at /Users/user/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:81
    #42 ActiveJob::Execution.perform_now at /Users/user/.rvm/gems/ruby-2.2.3/gems/activejob-4.2.5/lib/active_job/execution.rb:31
    #43 ActiveJob::Execution::ClassMethods.execute(job_data#Hash) at /Users/user/.rvm/gems/ruby-2.2.3/gems/activejob-4.2.5/lib/active_job/execution.rb:21
    #44 ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper.perform(job_data#Hash) at /Users/user/.rvm/gems/ruby-2.2.3/gems/activejob-4.2.5/lib/active_job/queue_adapters/sidekiq_adapter.rb:42
    #45 Sidekiq::Processor.execute_job(worker#ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper, cloned_args#Array) at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-4.0.1/lib/sidekiq/processor.rb:150
    #46 block (2 levels) in Sidekiq::Processor.block (2 levels) in process(work#Sidekiq::LimitFetch::UnitOfWork) at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-4.0.1/lib/sidekiq/processor.rb:132
    #47 block in Sidekiq::Middleware::Chain.block in invoke(*args#Array) at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-4.0.1/lib/sidekiq/middleware/chain.rb:127
    #48 Sidekiq::Status::ServerMiddleware.call(worker#ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper, msg#Hash, queue#String) at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-status-0.5.4/lib/sidekiq-status/server_middleware.rb:37
    #49 block in Sidekiq::Middleware::Chain.block in invoke(*args#Array) at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-4.0.1/lib/sidekiq/middleware/chain.rb:129
    #50 SidekiqUniqueJobs::Lock::UntilExecuted.after_yield_yield at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-unique-jobs-4.0.9/lib/sidekiq_unique_jobs/lock/until_executed.rb:63
    #51 SidekiqUniqueJobs::Lock::UntilExecuted.execute(callback#Proc, &blk#Proc) at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-unique-jobs-4.0.9/lib/sidekiq_unique_jobs/lock/until_executed.rb:16
    #52 SidekiqUniqueJobs::Server::Middleware.call(worker#ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper, item#Hash, queue#String, redis_pool#NilClass, &blk#Proc) at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-unique-jobs-4.0.9/lib/sidekiq_unique_jobs/server/middleware.rb:18
    #53 block in Sidekiq::Middleware::Chain.block in invoke(*args#Array) at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-4.0.1/lib/sidekiq/middleware/chain.rb:129
    #54 Sidekiq::Middleware::Server::ActiveRecord.call(*args#Array) at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-4.0.1/lib/sidekiq/middleware/server/active_record.rb:6
    #55 block in Sidekiq::Middleware::Chain.block in invoke(*args#Array) at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-4.0.1/lib/sidekiq/middleware/chain.rb:129
    #56 Sidekiq::Middleware::Server::RetryJobs.call(worker#ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper, msg#Hash, queue#String) at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-4.0.1/lib/sidekiq/middleware/server/retry_jobs.rb:74
    #57 block in Sidekiq::Middleware::Chain.block in invoke(*args#Array) at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-4.0.1/lib/sidekiq/middleware/chain.rb:129
    #58 block in Sidekiq::Middleware::Server::Logging.block in call(worker#ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper, item#Hash, queue#String) at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-4.0.1/lib/sidekiq/middleware/server/logging.rb:11
    #59 #<Class:Sidekiq::Logging>.with_context(msg#String) at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-4.0.1/lib/sidekiq/logging.rb:30
    #60 Sidekiq::Middleware::Server::Logging.call(worker#ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper, item#Hash, queue#String) at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-4.0.1/lib/sidekiq/middleware/server/logging.rb:7
    #61 block in Sidekiq::Middleware::Chain.block in invoke(*args#Array) at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-4.0.1/lib/sidekiq/middleware/chain.rb:129
    ͱ-- #62 Proc.call(*args) at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-4.0.1/lib/sidekiq/middleware/chain.rb:132
    #63 Sidekiq::Middleware::Chain.invoke(*args#Array) at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-4.0.1/lib/sidekiq/middleware/chain.rb:132
    #64 block in Sidekiq::Processor.block in process(work#Sidekiq::LimitFetch::UnitOfWork) at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-4.0.1/lib/sidekiq/processor.rb:127
    #65 Sidekiq::Processor.stats(worker#ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper, job#Hash, queue#String) at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-4.0.1/lib/sidekiq/processor.rb:166
    #66 Sidekiq::Processor.process(work#Sidekiq::LimitFetch::UnitOfWork) at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-4.0.1/lib/sidekiq/processor.rb:126
    #67 Sidekiq::Processor.process_one at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-4.0.1/lib/sidekiq/processor.rb:79
    #68 Sidekiq::Processor.run at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-4.0.1/lib/sidekiq/processor.rb:67
    #69 Sidekiq::Util.watchdog(last_words#String) at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-4.0.1/lib/sidekiq/util.rb:16
    #70 block in Sidekiq::Util.block in safe_thread(name#String, &block#Proc) at /Users/user/.rvm/gems/ruby-2.2.3/gems/sidekiq-4.0.1/lib/sidekiq/util.rb:24

@Ricardonacif
Copy link

@kapso did you find any solution? I'm running into the same problem. I could solve it only by downgrading to 4.0.7.

@kapso
Copy link
Author

kapso commented Dec 14, 2015

No solution yet.

@mhenrixon
Copy link
Owner

Sorry guys, I've completely forgotten about this issue. I'll try and fix it first thing tomorrow.

@mhenrixon
Copy link
Owner

What is inside BaseWorker @kapso ?

@mathieujobin
Copy link

I am running sidekiq-unique-jobs (4.0.13) and running into similar issues
which version is the fixed one? should I go back to 4.0.7 ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants