Mi occupo di self-hosting di Discourse da molti anni e ho avuto diverse istanze configurate e funzionanti su una macchina abbastanza potente.
Oggi ho notato che uno dei miei forum era offline. Il colpevole iniziale sembrava essere la mancanza di spazio su disco, che ho risolto. Ho quindi riavviato l’istanza di Discourse.
Tuttavia, da allora continua a bloccarsi regolarmente. Ogni volta che la avvio, vedo immediatamente sidekiq impazzire e un gran numero di processi di posta elettronica falliti, che causano anche a redis l’archiviazione di una quantità enorme di stato, che credo fosse la causa effettiva del problema dello spazio su disco. (Farò un flush la prossima volta che riuscirò a riavviare la macchina, perché altrimenti finirò presto lo spazio su questa macchina e non sarò nemmeno in grado di avviare Discourse per fare il flush. Ma il flush non sembra ridurre molto l’utilizzo del disco di redis.)
Il messaggio di errore indica qualcosa riguardo a una mancata corrispondenza del nome del certificato, il che trovo un po’ sorprendente poiché il server di posta che sto utilizzando è interno e non richiede TLS o autenticazione. Sono stato in grado di verificare su un’altra delle mie istanze (utilizzando la stessa configurazione di posta elettronica) che l’invio di email aveva smesso di funzionare. Tutto ciò che vedo nei log di produzione principali è un errore 422, ma quando invio qualcosa come un ripristino della password vedo un errore simile nei log di sidekiq:
Jobs::HandledExceptionWrapper: Wrapped OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=error: certificate verify failed (Hostname mismatch)
Sono stato in grado di verificare di poter inviare email tramite la riga di comando, quindi questo non sembra essere un problema con il server di posta stesso, solo qualcosa di errato nella configurazione di Discourse.
Ecco la configurazione di posta originale che funzionava fino a poco tempo fa:
DISCOURSE_SMTP_ADDRESS: outbound-relays.techservices.illinois.edu
DISCOURSE_SMTP_PORT: 25
DISCOURSE_SMTP_ENABLE_START_TLS: false
Di nuovo, questo server di posta è interno e non richiede nome utente o password, e queste impostazioni funzionavano fino a poco tempo fa. Ho sperimentato con DISCOURSE_SMTP_OPENSSL_VERIFY_MODE, ma non riesco a capire se è ancora supportato. Indipendentemente da ciò, non sembra aiutare. Ho notato alcune nuove impostazioni di posta elettronica che sono state aggiunte da quando ho configurato questi forum, ma non sembrano necessarie data la configurazione di questo server di posta.
Qualsiasi aiuto sarebbe apprezzato! A questo punto, ho davvero difficoltà anche a essere sicuro di cosa sia sbagliato o a iterare, poiché la ricostruzione del container richiede tempo e il messaggio di errore nei log di produzione ha solo l’errore 422 e non riesco a capire dove cercare la causa principale effettiva. (Deve essere da qualche parte, vero? Sono sicuro che me la sto solo perdendo.)