Le plugin Digest Email s'est bloqué dans DistributedMutex.synchronize lors de la mise à niveau

Nous avons un plugin personnalisé d’e-mail récapitulatif qui s’est cassé lorsque j’ai mis à niveau de la bêta 7 de 2.9.0 à la bêta 9. Je réalise que Discourse ne prend pas en charge les plugins personnalisés, mais auriez-vous des indices sur ce que je peux faire avant de me diriger vers Marketplace ?

Journal d'erreurs
/var/www/discourse/plugins/discourse-506investor-digest-plugin/plugin.rb:27:in `block in execute'
/var/www/discourse/lib/distributed_mutex.rb:57:in `block in synchronize'
/var/www/discourse/lib/distributed_mutex.rb:53:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:53:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:38:in `synchronize'
/var/www/discourse/plugins/discourse-506investor-digest-plugin/plugin.rb:12:in `execute'
/var/www/discourse/app/jobs/base.rb:237: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:226:in `block in perform'
/var/www/discourse/app/jobs/base.rb:222:in `each'
/var/www/discourse/app/jobs/base.rb:222:in `perform'
/var/www/discourse/app/jobs/base.rb:284:in `perform'
mini_scheduler-0.14.0/lib/mini_scheduler/manager.rb:93:in `process_queue'
mini_scheduler-0.14.0/lib/mini_scheduler/manager.rb:37:in `block (2 levels) in initialize'
Code pertinent
after_initialize {
  class ::Jobs::EnqueueDigestEmails
    def execute(args)
      return if SiteSetting.disable_digest_emails? || SiteSetting.private_email?

      DistributedMutex.synchronize("custom_digest", validity: 180.minutes) {  # <<<<<<<<<<<<<< ligne fautive 12
        users = User.where(id: target_user_ids)
        return if users.blank?
        
        connection = CustomDigest.create_connection

Peut-être regardez le job que vous remplacez dans le noyau et regardez le blame pour voir si quelque chose a changé récemment. Ce serait la première chose que je vérifierais.

1 « J'aime »