Há muitos anos que hospedo o Discourse em auto-hospedagem, e tive várias instâncias configuradas e funcionando bem em uma máquina bastante robusta.
Hoje notei que um dos meus fóruns parou de funcionar. O culpado inicial parecia ser a falta de espaço em disco, que eu corrigi. Em seguida, reiniciei a instância do Discourse.
No entanto, ele continuou a cair regularmente desde então. Cada vez que eu o reinicio, vejo imediatamente o sidekiq enlouquecer e um grande número de trabalhos de e-mail falhando, o que também está fazendo com que o redis armazene uma quantidade massiva de estado, o que eu acho que foi a causa real do problema de espaço em disco. (Estou prestes a fazer um flush na próxima vez que conseguir colocar a máquina no ar, pois se não o fizer, ficarei rapidamente sem espaço nesta máquina e nem conseguirei iniciar o Discourse para fazer o flush. Mas o flush não parece reduzir muito o uso de disco do redis.)
A mensagem de erro indica algo sobre uma incompatibilidade de nome de certificado, o que acho um pouco surpreendente, já que o servidor de e-mail que estou usando é interno e não requer TLS ou autenticação. Consegui verificar em uma das minhas outras instâncias (usando a mesma configuração de e-mail) que o e-mail parou de funcionar. Tudo o que consigo ver nos principais logs de produção é um erro 422, mas quando envio algo como uma redefinição de senha, vejo um erro semelhante nos logs do sidekiq:
Jobs::HandledExceptionWrapper: Wrapped OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=error: certificate verify failed (Hostname mismatch)
Consegui verificar que consigo enviar e-mails pela linha de comando, então isso não parece ser um problema com o próprio servidor de e-mail, apenas algo quebrado na configuração do Discourse.
Aqui está a configuração de e-mail original que estava funcionando até recentemente:
DISCOURSE_SMTP_ADDRESS: outbound-relays.techservices.illinois.edu
DISCOURSE_SMTP_PORT: 25
DISCOURSE_SMTP_ENABLE_START_TLS: false
Novamente, este servidor de e-mail é interno e não requer nome de usuário ou senha, e essas configurações estavam funcionando até recentemente. Tenho experimentado com DISCOURSE_SMTP_OPENSSL_VERIFY_MODE, mas não consigo dizer se ele ainda é suportado. De qualquer forma, não parece ajudar. Notei algumas novas configurações de e-mail que foram adicionadas desde que configurei esses fóruns, mas elas não parecem necessárias dada a configuração deste servidor de e-mail.
Qualquer ajuda seria apreciada! A esta altura, estou honestamente tendo dificuldade em ter certeza do que está errado ou em iterar, já que reconstruir o contêiner leva tempo e a mensagem de erro nos logs de produção tem apenas o erro 422 e não consigo descobrir onde procurar a causa raiz real. (Deve estar em algum lugar, certo? Tenho certeza de que estou apenas perdendo.)