Viele HTTP 502 und 429 nach der Aktualisierung auf 3.4.0.beta1-dev

Discourse-Version: 3.4.0.beta1-dev (bf3d8a0a94)

Gestern aktualisiert und musste die Minifizierung von Cloudflare deaktivieren, wie hier vorgeschlagen:

Seitdem haben jedoch viele Benutzer (einschließlich mir) mehrere Instanzen von 502 (Bad Gateway) und 529 (Too Many Requests) erlebt.

Um das Problem zu lindern, habe ich auch dieser Anleitung befolgt:

Allerdings scheint sich in Bezug auf die Häufigkeit dieser Fehler nichts geändert zu haben.

Das Update fand gestern gegen 11 Uhr statt. Ich habe einen vollständigen Rebuild durchgeführt, da ich auch ein Plugin deaktivieren wollte.

Ich habe eine Prometheus+Grafana-Instanz, die den Server und Discourse überwacht, aber der Server scheint in Bezug auf die Auslastung in Ordnung zu sein:

Discourse-Metriken (der Rückgang der Metriken gestern gegen 11 Uhr ist der Rebuild, der den Container herunterfährt):

Auch hier sehe ich kein seltsames Muster.

Dies ist jedoch die Browserkonsole von vor einer Minute, nachdem ich versucht habe, eine PM an einen Benutzer zu senden:

Wenn Sie noch etwas (Logs jeglicher Art) benötigen, fragen Sie bitte. Vielen Dank.

Außerdem hinken viele „Hintergrund“-Echtzeitoperationen deutlich hinterher.

Beispielsweise werden gelesene Themen nicht als gelesen registriert.

Nur um sicherzugehen, hast du diesen Schritt auch gemacht und dann neu kompiliert, richtig?

1 „Gefällt mir“

Ja, Entschuldigung, ich habe vergessen hinzuzufügen, dass ich die Cloudflare-Vorlage bereits vor langer Zeit zur app.yml-Datei hinzugefügt hatte. Wir sind seit dem ersten Tag hinter Cloudflare.

Dies ist ein Teil der app.yml, wir haben unsere eigenen Zertifikate, die unabhängig erneuert werden, weshalb das Letsencrypt-Zertifikat auskommentiert ist:

## dies ist die All-in-One, eigenständige Discourse Docker Container-Vorlage
##
## Nach Änderungen an dieser Datei MÜSSEN Sie neu erstellen
## /var/discourse/launcher rebuild app
##
## SEIEN SIE *SEHR* VORSICHTIG BEIM BEARBEITEN!
## YAML-DATEIEN SIND SUPER SUPER EMPFINDLICH GEGENÜBER FEHLERN BEI LEERZEICHEN ODER AUSRICHTUNG!
## Besuchen Sie http://www.yamllint.com/, um diese Datei bei Bedarf zu validieren

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
## Kommentieren Sie diese beiden Zeilen aus, wenn Sie Lets Encrypt (https) hinzufügen möchten
  - "templates/web.ssl.template.yml"
#  - "templates/web.letsencrypt.ssl.template.yml"
  - "templates/cloudflare.template.yml"

## welche TCP/IP-Ports soll dieser Container verfügbar machen?
## Wenn Sie möchten, dass Discourse einen Port mit einem anderen Webserver wie Apache oder nginx teilt,
## siehe https://meta.discourse.org/t/17247 für Details
expose:
  - "80:80"   # http
  - "443:443" # https

[... ]

Auszug aus den /logs

Ich sehe, dass dies nach Installation verschoben wurde. Nur zur Klarstellung: Dies ist keine Neuinstallation.

Diese Instanz von Discourse läuft seit März 2023 und hatte dieses spezielle Problem noch nie.

Es gab in der Vergangenheit ein Problem mit einigen 529, das jedoch inzwischen behoben wurde.

Ich denke, es passt immer noch in

4 „Gefällt mir“

Es sieht so aus, als ob Ihre PostgreSQL überlastet ist. Es sieht so aus, als ob der größte Teil Ihres RAMs ungenutzt ist. Ich würde versuchen, die DB anzupassen, um ihn zu nutzen und zu sehen, wie die Dinge danach laufen.

1 „Gefällt mir“

Wie sieht /sidekiq/queues aus?
Von welcher Version haben Sie aktualisiert?

1 „Gefällt mir“

Von der neuesten stabilen Version vom 6. Mai, v3.2.1 bis zum neuesten test-passed.

Sidekiq-Warteschlangen:

Der Abschnitt „Dead Job“ ist dieser, aber es scheint derselbe Job seit Anbeginn der Zeit zu sein.

Älteste Einträge:

Diejenigen, die sich im Wiederholungsversuch befinden, scheinen derselbe Job zu sein, der immer wieder wiederholt wird.

Aber… warum plötzlich? Nach nur einem Update der Anwendungsschicht?

Ich benutze das Discourse Prometheus Exporter Plugin.
Wenn ich einen PostgreSQL-Exporter als weiteren Container auf der VM hinzufügen würde, wäre es dann möglich, ihm den Zugriff auf die Metriken der Discourse-PostgreSQL-Installation zu ermöglichen?

Gibt es genauere Anweisungen zum Feinabstimmen der Datenbank für Discourse?

Bin mir nicht sicher, ob es damit zusammenhängt, aber es begann sicherlich nach dem Update. Das Klicken auf die Schaltfläche „Schließen“ im Tab „Ungelesen“ gibt immer eine 503 zurück.

Nun, da es anscheinend keine Lösung gibt, werde ich versuchen, zum neuesten stable zurückzukehren, da es ja, Sie wissen schon, stabil sein soll.

Daumen drücken, dass keine Kernabhängigkeit den Build-Prozess unterbricht, wie letztes Mal.

Sie können nicht von Tests bestanden zu stable zurückkehren, es sei denn, es gibt eine höhere stabile Version. Die nächste Gelegenheit für Sie ist also, wenn 3.4.0 herauskommt, ich schätze, das ist um oder nach Weihnachten…

Außerdem müssen Sie irgendwann in den sauren Apfel beißen.

1 „Gefällt mir“

Nun, das habe ich gerade getan. Scheint zu funktionieren. Wir kümmern uns sowieso nicht um irgendwelche Funktionen in 3.3.0.

Ich werde sehen, ob es immer noch Probleme gibt. Schlimmer kann es nicht werden, als dass wir immer noch eine Fülle von 429 und 502 erhalten, keine allzu große Veränderung.

Ich würde mich über Anleitungen freuen, wie ich den Postgres auf Discourse konfigurieren kann, damit mehr Ressourcen zur Verfügung stehen.

Bearbeiten: Version 3.2.5 bereitgestellt. Das System scheint stabil zu sein.

Bitte erinnern Sie uns daran, dass Sie dies getan haben, wenn Sie Ihr nächstes Problem melden :wink:

1 „Gefällt mir“

Ich erwähne immer die Version, in der ich mich befinde, wenn ich ein Problem poste.
Ich denke, es ist wichtig, sich daran zu erinnern, dass gerade weil dies als Open-Source-Software präsentiert wird, kritische Probleme berücksichtigt werden sollten, anstatt Dinge wie diese zu schreiben:

Dies ist ein weiteres Beispiel dafür, dass Leute sich Mühe geben und zur „stabilen“ Version wechseln, auf einige Fehler stoßen, die durchs Raster fallen, weil es nicht die beliebteste eingesetzte Version ist.

Wenn „stabil“ „stabil“ bedeuten sollte, nicht „Legacy“.
Die Tatsache, dass Kernabhängigkeiten wie Discourse Docker ohne Tag-System veröffentlicht werden, sollte ausreichen, um etwas demütiger zu sein, wenn man auf Benutzer antwortet, die ein Problem melden.

Ich sprach davon, die Tatsache zu erwähnen, dass Sie ein Downgrade durchgeführt haben, als Sie es technisch gesehen nicht konnten.

Ich denke, es ist wichtig, sich daran zu erinnern … dass ich nicht für Discourse arbeite und Ihnen in meiner eigenen Zeit helfe, daher schätze ich Ihren Ton nicht und kann auch nichts mit Ihrem Feedback anfangen.

2 „Gefällt mir“

2 „Gefällt mir“