Sidekiq, usando elasticache, não processa jobs enfileirados após a atualização do discourse

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-doctor para 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?

Em algum momento, o discourse passou a exigir o Redis 5. Acredito que sua versão do Elasticache suporte qual versão do Redis? Achei que havia uma mensagem clara nos logs, mas posso estar errado.

Vou verificar meu site que usa o Elasticache para ter certeza de que não estou tendo problemas. Estou bastante certo de que este site usa o Elasticache.

Essa é uma informação útil, obrigado. Estou na versão 3 do Redis, então parece que vou fazer uma atualização hoje à noite.

Eu achei que havia uma mensagem clara nos logs

Também existe a possibilidade de eu não estar procurando nos logs corretos. Nem /logs nem ./launcher logs app fornecem qualquer indicação disso, então talvez haja outro lugar onde eu deva procurar?

/var/discourse/shared/logs/rails/production.log

se minha memória e meus dedos funcionassem.

Muito perto. Encontrei em:

/var/discourse/shared/web-only/log/rails/production.log

Mensagem bem clara, depois que a encontrei :+1:t2::

Você está se conectando ao Redis v3.2.10, o Sidekiq requer Redis v4.0.0 ou superior

Atualizei para o Redis 5 e ele processou minha fila acumulada. Tudo certo agora! Obrigado!