You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Expected behavior
unique lock digests per job/args combo
Current behavior
Jobs chain the same lock digest. I don't think this happens 100% of the time but it's frequent.
sidekiq-unique-jobs 8.0.2
sidekiq 7.0.7
couple of ways to show this off, below is with another middleware, monkey patching the middleware with a log before the lock digest check also shows the same
in prod we also see lock digests coming off of jobs to other jobs that don't have themselves have lock methods themselves (JobA has no lock but JobB does, I haven't nailed down where they are coming from but it's possible JobC calls JobA and JobC has a lock
raw prod debug logs with just the job names changed - note jid & job class change but lock_digest stays the same. WorkerA has no log args, WorkerB is a basic lock: :until_and_while_executing
Describe the bug
JobA calls
JobB.perform_async
JobB gets a lock digest in the job hash - because the lock digest exists the middleware doesn't create a new lock digest,etc and things don't go well.
Expected behavior
unique lock digests per job/args combo
Current behavior
Jobs chain the same lock digest. I don't think this happens 100% of the time but it's frequent.
sidekiq-unique-jobs 8.0.2
sidekiq 7.0.7
couple of ways to show this off, below is with another middleware, monkey patching the middleware with a log before the lock digest check also shows the same
irb
logs (issue doesn't occur for job that comes out of irb/outside of sidekiq - just on the sidekiq server side
in prod we also see lock digests coming off of jobs to other jobs that don't have themselves have lock methods themselves (JobA has no
lock
but JobB does, I haven't nailed down where they are coming from but it's possible JobC calls JobA and JobC has alock
raw prod debug logs with just the job names changed - note jid & job class change but lock_digest stays the same. WorkerA has no log args, WorkerB is a basic
lock: :until_and_while_executing
any ideas or pointers on where to look would be much appreciated
The text was updated successfully, but these errors were encountered: