502 Bad Gateway nach Aktualisierung auf die neueste Version

Nach dem Update auf die neueste Version von Discourse haben wir nun ein seltsames Problem mit ngix, das den Fehler 502 ausgibt.

Einige Benutzer erhalten beim Posten den Fehler 502, andere nicht. Einige Profile erhalten 502, andere nicht.

Die CPU-Auslastung liegt bei etwa 10 bis 25 %, die RAM-Auslastung ebenfalls bei etwa 20 %.

Ich habe versucht, unsere 5 Plugins zu deaktivieren, dasselbe Ergebnis.

Welche Protokolle muss ich mir ansehen, um herauszufinden, was diese 502-Fehler verursacht?

Wenn ich in I /var/log/nginx/error.log nachsehe, bekomme ich anscheinend zufällig viele davon, was meiner Meinung nach die 502 verursacht.

Es ist nur ein Timeout oder was?

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/"

Welche Version gab es vor dem Update?

Wirklich alt, wie ein Jahr oder älter. Gibt es irgendwo ein Protokoll, das ich sehen kann, von dem ich ein Upgrade durchgeführt habe?

Ich bekomme auch einige davon

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

Es scheint zufällig zu sein, plötzlich ist alles schnell und ich kann wieder posten, und dann wird es langsam und 502er tauchen wieder auf.

Blick in die postgres/current-Log

2025-04-29 18:48:24.709 UTC [1746] discourse@discourse LOG:  Dauer: 606789.911 ms  Ausführung unnamed: SELECT COUNT(*) FROM "posts" WHERE "posts"."deleted_at" IS NULL

dauer: 606789.911 ms

Wir haben viele Beiträge, aber wenige Nutzer.. warum dauert es 600k ms bei dieser Abfrage?

Könnten es Probleme mit der Indizierung oder ähnlichem sein, die die Abfragen langsam machen?

Ich habe die Diskurs-Tabelle in Postgres ausgewählt und einen REINDEX DATABASE discourse; ausgeführt, in der Hoffnung, dass dies die Dinge beschleunigt.

Ich gehe davon aus, dass dies sehr lange dauern wird.

Haben Sie die Ratschläge in PostgreSQL 15 Update befolgt? Möglicherweise müssen Sie auch die Datenbank vakuumieren.

Ich habe es nicht gemacht, ich habe den Ordner postgres_data_old (wenn auch in einem anderen Verzeichnis als in diesem Beitrag).

Aber dann sagt der Beitrag;

“Wenn Sie eine Einrichtung mit einem dedizierten Datenspeicher-Container ausführen” , was ich als bedeutet, dass PostgreSQL in einem dedizierten Docker-Container läuft?

Unsere laufen in derselben Instanz wie das Forum. Daher bin ich unsicher, wie ich weiter vorgehen soll, da es keinen “wenn nicht”-Abschnitt zu geben scheint.

Bedeutet die Anwesenheit des Ordners, dass die Umwandlung in Ordnung war oder was?"}

Sie können die PostgreSQL-Version unter /var/discourse/shared/standalone/postgres_data/PG_VERSION überprüfen – Wenn Sie ein Upgrade über die Befehlszeile durchgeführt haben, ist es möglich, dass das Upgrade erfolgreich war und Sie es nicht bemerkt haben (aber Sie hätten den Wiederaufbau zweimal ausführen müssen). Wenn Sie das Upgrade über die Weboberfläche durchgeführt haben, sollten Sie wahrscheinlich einen Befehlszeilen-Wiederaufbau durchführen, vorausgesetzt, Ihr Betriebssystem und Docker sind aktuelle Versionen.

[Zitat=“pfaffman, Beitrag:12, Thema: 364024”]
/var/discourse/shared/standalone/postgres_data/PG_VERSION
[/Zitat]

Version ist 15.

Es scheint, dass die Dinge viel besser sind, nachdem ich den Vacuum-Befehl ausgeführt habe.

Das Posten funktioniert einwandfrei und scheint schnell zu sein, aber wenn Administratoren versuchen, Benutzerprofile zu klicken oder ihre Profile aufzurufen, zeigt es immer noch 502-Fehler, scheint es, wegen Timeout?

Gibt es etwas, das ich tun kann, um diesen Teil der Datenbank zu beschleunigen?

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