Recentemente ho aggiornato la mia istanza Docker di Discourse in esecuzione su un’istanza EC2 di Ubuntu. Ho utilizzato launcher rebuild per l’aggiornamento. In precedenza avevo la versione 2.4.0 e sono passato alla 2.6.0.beta1 (successivamente ho aggiornato anche alla 2.6.0.beta2). Sto utilizzando Elasticache al posto di Redis e prima dell’aggiornamento tutto funzionava senza problemi. Subito dopo l’aggiornamento ho notato che Sidekiq non inviava email. Ho riavviato l’app e svuotato la cache e sembrava funzionare, ma si è trattato di un falso positivo.
Segnali osservati di malfunzionamento
- Sidekiq programma e accoda lavori a un ritmo abbastanza costante (come indicato nella dashboard di Sidekiq), ma non ne esegue alcuno.
- La pagina di amministrazione segnala che Sidekiq non è in esecuzione.
- I log mostrano diversi casi di
Sidekiq heartbeat test failed, restarting. - Ovviamente: le email non vengono inviate agli utenti.
Cose che ho provato (dopo aver letto post qui e su Stack Overflow)
- Ho inviato con successo un’email di prova con
discourse-doctorper verificare che quella parte del flusso funzionasse. - Ho verificato nella dashboard di Sidekiq che il piè di pagina mostri l’istanza Elasticache corretta .
- Ho verificato che i log Docker non indichino errori (
ok: run: redis: (pid XX) 0s). - Ho svuotato la cache e riavviato Discourse (
./launcher restart app). - Ho fermato l’app, svuotato la cache e riavviato l’app.
- Ho ricostruito nuovamente l’app.
Passaggi che non ho ancora provato
- Creare una nuova istanza Elasticache.
- Mettere in standby questa installazione e crearne una pulita.
Qualcuno ha riscontrato questo problema e ha suggerimenti?
Ci sono log che potrei aver trascurato?
Esiste un modo per costringere Sidekiq a elaborare i suoi lavori?