Job exception: DistributedMutex::MaximumAttemptsExceeded

AI-generated summary

kinetiksoft reported recurring “DistributedMutex::MaximumAttemptsExceeded” job exceptions in their Discourse forum logs, seeking guidance on whether it’s critical or requires configuration adjustments. The error occurred during the notify_reviewable job, with a backtrace pointing to distributed lock acquisition failures. JammyDodger followed up, asking if the issue persisted and whether it was tied to a specific reviewable item (/review/8980). Later, kinetiksoft confirmed the original error had subsided but reported a new, recurring job exception: uninitialized constant Jobs::ClassifyChatMessage::ChatMessage, tied to the AI chat message classification job. The error log included context such as chat_message_id: 2444 and environment details. JammyDodger acknowledged the resolution of the first issue and speculated the new error might stem from the AI module failing to load a ChatMessage class, though the cause remained unclear. kinetiksoft also politely requested attention for an unrelated bug regarding Discourse GIFs, referencing their follow-up post in the GIFs topic, which JammyDodger noted had been posted and might attract internal team attention.

Hi,

We keep seeing these error notices in our forum logs. Should we worry about it or/and adjust any settings?

backtrace
/var/www/discourse/lib/distributed_mutex.rb:113:in `get_lock'

/var/www/discourse/lib/distributed_mutex.rb:62:in `block in synchronize'

/var/www/discourse/lib/distributed_mutex.rb:61:in `synchronize'

/var/www/discourse/lib/distributed_mutex.rb:61:in `synchronize'

/var/www/discourse/lib/distributed_mutex.rb:45:in `synchronize'

/var/www/discourse/app/jobs/regular/notify_reviewable.rb:25:in `execute'

/var/www/discourse/app/jobs/base.rb:249:in `block (2 levels) in perform'

rails_multisite-4.0.1/lib/rails_multisite/connection_management.rb:80:in `with_connection'
/var/www/discourse/app/jobs/base.rb:236:in `block in perform'

/var/www/discourse/app/jobs/base.rb:232:in `each'

/var/www/discourse/app/jobs/base.rb:232:in `perform'

sidekiq-6.5.8/lib/sidekiq/processor.rb:202:in `execute_job'

sidekiq-6.5.8/lib/sidekiq/processor.rb:170:in `block (2 levels) in process'

sidekiq-6.5.8/lib/sidekiq/middleware/chain.rb:177:in `block in invoke'

/var/www/discourse/lib/sidekiq/pausable.rb:134:in `call'

sidekiq-6.5.8/lib/sidekiq/middleware/chain.rb:179:in `block in invoke'

sidekiq-6.5.8/lib/sidekiq/middleware/chain.rb:182:in `invoke'

sidekiq-6.5.8/lib/sidekiq/processor.rb:169:in `block in process'

sidekiq-6.5.8/lib/sidekiq/processor.rb:136:in `block (6 levels) in dispatch'

sidekiq-6.5.8/lib/sidekiq/job_retry.rb:113:in `local'

sidekiq-6.5.8/lib/sidekiq/processor.rb:135:in `block (5 levels) in dispatch'

sidekiq-6.5.8/lib/sidekiq.rb:44:in `block in <module:Sidekiq>'

sidekiq-6.5.8/lib/sidekiq/processor.rb:131:in `block (4 levels) in dispatch'

sidekiq-6.5.8/lib/sidekiq/processor.rb:263:in `stats'

sidekiq-6.5.8/lib/sidekiq/processor.rb:126:in `block (3 levels) in dispatch'

sidekiq-6.5.8/lib/sidekiq/job_logger.rb:13:in `call'

sidekiq-6.5.8/lib/sidekiq/processor.rb:125:in `block (2 levels) in dispatch'

sidekiq-6.5.8/lib/sidekiq/job_retry.rb:80:in `global'

sidekiq-6.5.8/lib/sidekiq/processor.rb:124:in `block in dispatch'

sidekiq-6.5.8/lib/sidekiq/job_logger.rb:39:in `prepare'

sidekiq-6.5.8/lib/sidekiq/processor.rb:123:in `dispatch'

sidekiq-6.5.8/lib/sidekiq/processor.rb:168:in `process'

sidekiq-6.5.8/lib/sidekiq/processor.rb:78:in `process_one'

sidekiq-6.5.8/lib/sidekiq/processor.rb:68:in `run'

sidekiq-6.5.8/lib/sidekiq/component.rb:8:in `watchdog'

sidekiq-6.5.8/lib/sidekiq/component.rb:17:in `block in safe_thread'

env
hostname
process_id 189676
application_version 2f8ad17aed81bbfa2fd20b6cc9210be92779bd74
current_db default
current_hostname
job Jobs::NotifyReviewable
problem_db default
time 4:02 pm
opts
reviewable_id 8980
current_site_id default

Are you still seeing this @kinetiksoft? Is it that specific reviewable it’s having an issue with? (/review/8980)

I don’t see this specific error now, yet we have different Job Exception with inappropriate amount of repeats which states:

Job exception: uninitialized constant Jobs::ClassifyChatMessage::ChatMessage

Backtrace

/var/www/discourse/plugins/disorder/app/jobs/regular/classify_chat_message.rb:11:in execute' /var/www/discourse/app/jobs/base.rb:249:in block (2 levels) in perform’
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rails_multisite-4.0.1/lib/rails_multisite/connection_management.rb:80:in with_connection' /var/www/discourse/app/jobs/base.rb:236:in block in perform’
/var/www/discourse/app/jobs/base.rb:232:in each' /var/www/discourse/app/jobs/base.rb:232:in perform’
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/sidekiq-6.5.8/lib/sidekiq/processor.rb:202:in execute_job' /var/www/discourse/vendor/bundle/ruby/3.2.0/gems/sidekiq-6.5.8/lib/sidekiq/processor.rb:170:in block (2 levels) in process’
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/sidekiq-6.5.8/lib/sidekiq/middleware/chain.rb:177:in block in invoke' /var/www/discourse/lib/sidekiq/pausable.rb:134:in call’

Additional details
Column 1 Column 2
hostname {redacted}
process_id 1657082
application_version c1c017f4333ad1aaec509c39bdc313420ea4e5a7
current_db default
current_hostname {redacted}
job Jobs::ClassifyChatMessage
problem_db default
time 1:06 pm
opts
chat_message_id 2444
current_site_id default


May I kindly hijack your attention while you’re here in regards to other bug which is described here:
https://meta.discourse.org/t/discourse-gifs/158738/235?u=kinetiksoft

Just in case there will be luck into getting someone’s attention within internal Discourse team chats…

At least that’s good news. :slight_smile: :partying_face:

I’m not sure about this second error. It looks like it’s the AI classification module having an issue with a chat message? It’s a little vague, but does that help at all?

I spotted you posted a follow-up in the GIFS topic Discourse Gifs - #243 by Muhammed_EKİCİ Hopefully that should get it some attention. :crossed_fingers: