Aggiornato oggi pomeriggio alla versione 2.6.0.beta5 (7fa6aca9db) e la mia dashboard mi avvisa di lavori falliti:
Ci sono 3 lavori di posta elettronica falliti. Controlla il tuo app.yml e assicurati che le impostazioni del server di posta siano corrette. Vedi i lavori falliti in Sidekiq.
Non vedo che (*) siano state inviate email e ho lavori Sidekiq in stato di ripetizione:
Ho provato a testare l’invio di email usando l’Anteprima Riepilogo, ma si verifica un errore:
Server Error
while trying to load /admin/email/preview-digest.json
Error code: 500 error
Il mio app.yml non è cambiato. Uso Mailgun e prima dell’aggiornamento tutto funzionava correttamente.
(*) Modifica: sono state inviate circa 12 digest, ma “Ci sono 265 lavori di posta elettronica falliti.” Evidentemente l’errore dipende dal contenuto del digest.
Credo che un valore di dati risulti essere nil o vuoto quando non dovrebbe esserlo, oppure non dovrebbe avere importanza. Due stack trace dai log, uno per l’anteprima e uno per il job di Sidekiq, credo:
/var/www/discourse/lib/pretty_text.rb:440:in `block in strip_secure_media'
nokogiri-1.10.10/lib/nokogiri/xml/node_set.rb:238:in `block in each'
nokogiri-1.10.10/lib/nokogiri/xml/node_set.rb:237:in `upto'
nokogiri-1.10.10/lib/nokogiri/xml/node_set.rb:237:in `each'
/var/www/discourse/lib/pretty_text.rb:434:in `strip_secure_media'
/var/www/discourse/lib/email/styles.rb:347:in `replace_secure_media_urls'
/var/www/discourse/lib/email/styles.rb:281:in `to_html'
/var/www/discourse/lib/email/renderer.rb:31:in `html'
/var/www/discourse/lib/email/sender.rb:70:in `send'
/var/www/discourse/app/jobs/regular/user_email.rb:70:in `send_user_email'
/var/www/discourse/app/jobs/regular/user_email.rb:25:in `execute'
/var/www/discourse/app/jobs/base.rb:232:in `block (2 levels) in perform'
rails_multisite-2.5.0/lib/rails_multisite/connection_management.rb:76:in `with_connection'
/var/www/discourse/app/jobs/base.rb:221:in `block in perform'
/var/www/discourse/app/jobs/base.rb:217:in `each'
/var/www/discourse/app/jobs/base.rb:217:in `perform'
sidekiq-6.1.2/lib/sidekiq/processor.rb:196:in `execute_job'
sidekiq-6.1.2/lib/sidekiq/processor.rb:164:in `block (2 levels) in process'
sidekiq-6.1.2/lib/sidekiq/middleware/chain.rb:138:in `block in invoke'
/var/www/discourse/lib/sidekiq/pausable.rb:138:in `call'
sidekiq-6.1.2/lib/sidekiq/middleware/chain.rb:140:in `block in invoke'
sidekiq-6.1.2/lib/sidekiq/middleware/chain.rb:143:in `invoke'
sidekiq-6.1.2/lib/sidekiq/processor.rb:163:in `block in process'
sidekiq-6.1.2/lib/sidekiq/processor.rb:136:in `block (6 levels) in dispatch'
sidekiq-6.1.2/lib/sidekiq/job_retry.rb:111:in `local'
sidekiq-6.1.2/lib/sidekiq/processor.rb:135:in `block (5 levels) in dispatch'
sidekiq-6.1.2/lib/sidekiq.rb:38:in `block in <module:Sidekiq>'
sidekiq-6.1.2/lib/sidekiq/processor.rb:131:in `block (4 levels) in dispatch'
sidekiq-6.1.2/lib/sidekiq/processor.rb:257:in `stats'
sidekiq-6.1.2/lib/sidekiq/processor.rb:126:in `block (3 levels) in dispatch'
sidekiq-6.1.2/lib/sidekiq/job_logger.rb:13:in `call'
sidekiq-6.1.2/lib/sidekiq/processor.rb:125:in `block (2 levels) in dispatch'
sidekiq-6.1.2/lib/sidekiq/job_retry.rb:78:in `global'
sidekiq-6.1.2/lib/sidekiq/processor.rb:124:in `block in dispatch'
sidekiq-6.1.2/lib/sidekiq/logger.rb:10:in `with'
sidekiq-6.1.2/lib/sidekiq/job_logger.rb:33:in `prepare'
sidekiq-6.1.2/lib/sidekiq/processor.rb:123:in `dispatch'
sidekiq-6.1.2/lib/sidekiq/processor.rb:162:in `process'
sidekiq-6.1.2/lib/sidekiq/processor.rb:78:in `process_one'
sidekiq-6.1.2/lib/sidekiq/processor.rb:68:in `run'
sidekiq-6.1.2/lib/sidekiq/util.rb:15:in `watchdog'
sidekiq-6.1.2/lib/sidekiq/util.rb:24:in `block in safe_thread'
Solo per precisare: il mio aggiornamento è fallito quando eseguito dal browser, quindi ho eseguito una ricompilazione da riga di comando.
(Nel caso ciò significhi che questa installazione si trovi in uno stato diverso rispetto a una aggiornata con successo. Ho un altro forum su un host diverso, che è stato aggiornato con successo e che non presenta problemi nell’invio di email o nella preparazione di un’anteprima del riepilogo.)
Mi chiedo se questa potrebbe essere una soluzione: se il problema riguarda la gestione di alcune immagini nelle email di riepilogo, e se siamo disposti a inviare temporaneamente i riepiloghi senza immagini, possiamo impostare short email length su un valore molto alto, in modo che strip images from short emails rimuova tutte le immagini.
Modifica: no, l’ho provato e i job di Sidekiq continuano ad accumularsi. Durante l’esperimento non è stata inviata alcuna email, nonostante molti job si siano rieseguiti più volte.