Hallo,
Ich stoße auf ein seltsames Problem mit meiner Discourse-Installation, bei dem 502-Fehler nur für ein bestimmtes Benutzerkonto (Admin) nach dem Login auftreten, während:
-
Anonyme Benutzer die Seite normal aufrufen können
-
Andere Benutzerkonten sich normal anmelden und die Seite normal nutzen können
-
Das Problem nur bei einem bestimmten Konto (Admin-Konto) auftritt
Umgebung
-
Discourse, installiert über das offizielle Docker-Setup
-
Reverse-Proxy / CDN: ArvanCloud (ähnlich wie Cloudflare)
-
Zugriff auf das internationale Internet ist eingeschränkt / instabil (GitHub und einige externe Dienste nicht erreichbar)
-
Discourse wurde seit ca. 1 Monat nicht aktualisiert
Symptome
Beim Aufrufen der Seite:
-
Wenn ich die Seite im privaten/Inkognito-Modus öffne → Seite wird normal geladen
-
Wenn ich mich mit meinem Hauptkonto anmelde → sofort 502 Bad Gateway
-
Wenn ich mich mit einem anderen Konto anmelde → alles funktioniert einwandfrei
Das Problem ist also eindeutig benutzerspezifisch und wird nach der Authentifizierung ausgelöst.
ArvanCloud (CDN) Fehlerprotokolle
Es erscheinen hauptsächlich zwei Fehler:
1. Upstream-Timeout beim Lesen des Upstreams
upstream timed out (110: Connection timed out) while reading upstream
Betroffene URLs sind meistens Assets, zum Beispiel:
-
/assets/browser-detect-*.js
-
/assets/plugins/automation-*.js
-
/assets/plugins/discourse-gamification-*.js
-
/assets/plugins/discourse-lazy-videos-*.js
2. Upstream hat die Verbindung vorzeitig geschlossen
upstream prematurely closed connection while reading response header from upstream
Zum Beispiel:
-
/stylesheets/common_theme_rtl_*.css
-
/theme-javascripts/*.js
Das CDN wartet also auf eine Antwort von Discourse, aber das Backend läuft auf einen Timeout oder schließt die Verbindung.
Was ich im Backend gefunden habe
In den Rails-Stack-Traces zeigt der Fehlerpfad auf:
-
current_user_serializer.rb -
discourse_updates.rb -
Methode:
DiscourseUpdates.has_unseen_features?
Was darauf hindeutet, dass der Absturz/Timeout beim Überprüfen von Ankündigungen neuer Funktionen für angemeldete Benutzer auftritt.
Da nur ein Benutzer betroffen ist, deutet dies stark darauf hin, dass das Problem während der benutzerspezifischen Serialisierung ausgelöst wird und nicht bei der globalen Seitendarstellung.
Jeder Hinweis wäre sehr hilfreich.
Vielen Dank.