Errore interno del server 500 su varie route

Ciao,

Sto cercando di risolvere un errore 500 Internal Server Error che si verifica ripetutamente.
Innanzitutto, ecco la configurazione (so che non è ideale e non è la distribuzione consigliata con Docker):

  • Discourse 2.3.8
  • Ruby 2.7.2 (tramite snap)
  • redis-server 5:4.0.9-1ubuntu0.2 (pacchetto Ubuntu)
  • PostgreSQL 10.15 (su un altro host)

Ho modificato il file config/environments/production.rb per impostare

config.log_level = :debug

Un esempio del tipo di errore che vediamo (mescolato a risposte 200) è disponibile qui (insieme al resto, dato che non posso inserire più di due link in un post): Ubuntu Pastebin

Ho cercato di capire se un particolare tipo di richiesta generasse l’errore 500 e sembra esserci effettivamente un certo schema (vedi il pastebin precedente).

Al momento non riesco a trovare un modo per procedere con il debug.
Non sono sicuro che si tratti di un bug e, purtroppo, non ho modo di riprodurlo. Questi errori si verificano in modo casuale durante la giornata, tra risposte 200. Potrebbe trattarsi di un problema di blocco o contesa, ma senza ulteriori log non riesco davvero a individuare la causa.

Di seguito sono riportati i limiti attualmente utilizzati dal processo, nel caso fosse questo il problema: Ubuntu Pastebin

Qualsiasi aiuto su come procedere con il debug sarebbe molto apprezzato.

Saluti,

Discourse 2.3.8 è molto vecchio e non funziona con Ruby recenti come la versione 2.7.2.

Sappiamo che Discourse 2.5.6, 2.6 e 2.7 funzionano con Ruby 2.7.2.

Ciao Rafael,

Grazie per la tua risposta. Abbiamo intenzione di effettuare l’aggiornamento e utilizzare il metodo di deployment supportato sicuramente “a breve”.

Stavo principalmente cercando di capire come aumentare i messaggi di debug oltre alla modifica del file config/environments/production.rb.

Ho visto che Logster (Discourse Logging Improvements) potrebbe essere utilizzato, ma non offre nulla di utile nel nostro caso (mi mancano i secondi, per capire se questo è correlato al mio errore 500 o meno) e ci sono troppi errori, probabilmente legati a questa incompatibilità tra le versioni di Ruby e Discourse.

Proverò a indagare un po’ di più, ma sto sicuramente spingendo per l’aggiornamento “prima” piuttosto che “a breve” :).

Grazie!