Recentemente, atualizei minha instância do Docker do Discourse rodando em uma EC2 do Ubuntu. Usei o launcher rebuild para realizar a atualização. Eu estava na versão 2.4.0 e atualizei para a 2.6.0.beta1 (também atualizei novamente para a 2.6.0.beta2). Estou usando o ElastiCache em vez do Redis, e tudo funcionava sem problemas antes da atualização. Imediatamente após a atualização, percebi que o Sidekiq não estava enviando e-mails. Reiniciei o aplicativo e limpei o cache, e parecia que estava funcionando, mas isso foi um falso positivo.
Indicações observadas de mau funcionamento
- O Sidekiq está agendando e enfileirando jobs em um ritmo razoavelmente constante (conforme indicado no painel do Sidekiq), mas não está executando nenhum deles.
- A página de administração está reclamando que o Sidekiq não está rodando.
- Os logs mostram várias ocorrências de
Sidekiq heartbeat test failed, restarting. - Obviamente: os e-mails não estão sendo enviados aos usuários.
Coisas que já tentei (após ler posts aqui e no Stack Overflow)
- Enviei com sucesso um e-mail de teste com o
discourse-doctorpara verificar se essa parte do fluxo está funcionando. - Verifiquei no painel do Sidekiq que o rodapé mostra a instância do ElastiCache correta .
- Verifiquei que os logs do Docker não indicam erros (
ok: run: redis: (pid XX) 0s). - Limpei o cache e reiniciei o Discourse (
./launcher restart app). - Parei o aplicativo, limpei o cache e iniciei o aplicativo novamente.
- Reconstruí o aplicativo novamente.
Passos que ainda não tentei
- Criar uma nova instância do ElastiCache.
- Desativar esta instalação e criar uma nova do zero.
Alguém já passou por isso e tem alguma sugestão?
Há algum log que eu tenha deixado de verificar?
Existe alguma maneira de forçar o Sidekiq a processar seus jobs?