502 Bad Gateway dopo l'aggiornamento all'ultima versione

Dopo l’aggiornamento all’ultima versione di Discourse abbiamo ora un problema strano con nginx che restituisce l’errore 502.

Alcuni utenti ricevono l’errore 502 quando pubblicano, altri no. Alcuni profili restituiscono 502, altri no.

L’utilizzo della CPU è intorno al 10-25%, anche l’utilizzo della RAM è circa del 20%.

Ho provato a disabilitare i nostri 5 plugin, stesso risultato.

A quali log devo guardare per scoprire cosa sta producendo questi errori 502?

Guardando in I /var/log/nginx/error.log ottengo casualmente molti di questi, che presumo producano il 502.

È solo un timeout o cos’altro?

2025/04/29 18:11:50 [error] 617#617: *419 upstream prematurely closed connection while reading response header from upstream, client: <IP>, server: _, request: "POST /posts HTTP/2.0", upstream: "http://127.0.0.1:3000/posts", host: "forum.domain.com", referrer: "https://forum.domain.com/"

Qual era la versione precedente all’aggiornamento?

Molto vecchio, tipo un anno o più. C’è un registro da qualche parte dove posso vedere da cosa ho aggiornato?

Sto riscontrando anche alcuni di questi problemi

*2 connect() failed (111: Connection refused) while connecting to upstream,
...
upstream: "http://127.0.0.1:3000/message-bus/92fd28cbf742...

Sembra casuale, improvvisamente tutto è veloce e posso pubblicare di nuovo, e poi rallenta e ricompaiono i 502.

Guardando all’interno del log postgres/current

2025-04-29 18:48:24.709 UTC [1746] discourse@discourse LOG:  durata: 606789.911 ms  esecuzione <anonimo>: SELECT COUNT(*) FROM "posts" WHERE "posts"."deleted_at" IS NULL

durata: 606789.911 ms

Abbiamo molti post, pochi utenti… perché sta usando 600mila ms su questo?

Potrebbe trattarsi di problemi di indicizzazione o simili, che rallentano le query?

Ho selezionato la tabella discourse in postgres ed eseguito un REINDEX DATABASE discourse; nella speranza che ciò rendesse le cose più veloci.

Presumo che ci vorrà molto tempo.

Hai seguito i consigli in Aggiornamento PostgreSQL 15? Potresti anche eseguire il vacuum del database.

Non l’ho fatto, ho sì la cartella postgres_data_old (anche se in una directory diversa rispetto a quella del post).

Ma poi il post dice;

“Se stai eseguendo una configurazione con un contenitore dati dedicato”, che presumo significhi che PostgreSQL gira in un contenitore Docker dedicato?

Nel nostro caso, gira nella stessa istanza del forum. Quindi non sono sicuro da dove proseguire, sembra che non ci siano clausole del tipo “se no”.

La presenza della cartella significa che la conversione è andata bene o cosa?

Puoi verificare la versione di Postgres in /var/discourse/shared/standalone/postgres_data/PG_VERSION – Se hai eseguito un aggiornamento tramite riga di comando, è possibile che abbia eseguito l’aggiornamento senza che te ne accorgessi (ma dovresti aver eseguito due volte il rebuild). Se hai aggiornato dall’interfaccia web, dovresti probabilmente procedere con un rebuild tramite riga di comando se il tuo sistema operativo e Docker sono versioni recenti.

La versione è 15.

Sembra che le cose siano molto migliorate dopo aver eseguito il comando vacuum.

La pubblicazione funziona bene e sembra veloce, ma quando l’amministratore tenta di fare clic sui profili utente, di accedere ai loro profili, si verifica ancora un errore 502, sembra un timeout?

C’è qualcosa che posso fare per velocizzare quella porzione del db?

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.