J’héberge Discourse moi-même depuis de nombreuses années, et j’ai eu plusieurs instances configurées et fonctionnant correctement sur une machine assez puissante.
Aujourd’hui, j’ai remarqué que l’un de mes forums était hors service. Le coupable initial semblait être un manque d’espace disque, que j’ai résolu. J’ai ensuite redémarré l’instance Discourse.
Cependant, elle continue de tomber en panne régulièrement depuis. Chaque fois que je la démarre, je vois immédiatement sidekiq s’emballer et un grand nombre de tâches d’e-mail échouées, ce qui provoque également le stockage d’une quantité massive d’état par redis, ce qui, je pense, était la cause réelle du problème d’espace disque. (Je vais faire un flush la prochaine fois que je pourrai démarrer la machine, car sinon je serai rapidement à court d’espace sur cette machine et je ne pourrai même pas démarrer Discourse pour le vider. Mais le flush ne semble pas réduire beaucoup l’utilisation de l’espace disque de redis.)
Le message d’erreur indique quelque chose concernant une incompatibilité de nom de certificat, ce que je trouve un peu surprenant car le serveur de messagerie que j’utilise est interne et ne nécessite ni TLS ni authentification. J’ai pu vérifier sur une de mes autres instances (utilisant la même configuration d’e-mail) que les e-mails avaient cessé de fonctionner. Tout ce que je vois dans les journaux de production principaux est une erreur 422, mais lorsque j’envoie quelque chose comme une réinitialisation de mot de passe, je vois une erreur similaire dans les journaux de sidekiq :
Jobs::HandledExceptionWrapper: Wrapped OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=error: certificate verify failed (Hostname mismatch)
J’ai pu vérifier que je peux envoyer des e-mails via la ligne de commande, donc cela ne semble pas être un problème avec le serveur de messagerie lui-même, juste quelque chose qui ne fonctionne pas avec la configuration de Discourse.
Voici la configuration d’e-mail d’origine qui fonctionnait jusqu’à récemment :
DISCOURSE_SMTP_ADDRESS: outbound-relays.techservices.illinois.edu
DISCOURSE_SMTP_PORT: 25
DISCOURSE_SMTP_ENABLE_START_TLS: false
Encore une fois, ce serveur de messagerie est interne et ne nécessite ni nom d’utilisateur ni mot de passe, et ces paramètres fonctionnaient jusqu’à récemment. J’ai expérimenté avec DISCOURSE_SMTP_OPENSSL_VERIFY_MODE, mais je ne peux pas dire s’il est encore pris en charge. Quoi qu’il en soit, cela ne semble pas aider. J’ai remarqué quelques nouveaux paramètres d’e-mail qui ont été ajoutés depuis que j’ai configuré ces forums, mais ils ne semblent pas nécessaires étant donné la configuration de ce serveur de messagerie.
Toute aide serait appréciée ! À ce stade, j’ai honnêtement même du mal à être sûr de ce qui ne va pas ou à itérer, car la reconstruction du conteneur prend du temps et le message d’erreur dans les journaux de production n’a que l’erreur 422 et je n’arrive pas à trouver où chercher la cause réelle. (Elle doit être quelque part, n’est-ce pas ? Je suis sûr que je la rate juste.)