Redis Flushall

Ich teile dies, falls es anderen hilft, die im Admin-Bereich „Updating

Redis enthält auch Benutzersitzungen und vieles mehr. Das vollständige Leeren von Redis führt dazu, dass alle Benutzer abgemeldet werden und alle ausstehenden Sidekiq-Jobs gelöscht werden. Geplante Jobs werden erst nach dem nächsten Neustart wieder verfügbar.

Dies sollte nur als letztes Mittel in Betracht gezogen werden. Selbst dann rate ich Ihnen dringend, herauszufinden, welche spezifischen Schlüssel das Problem verursachen, anstatt einen flushall-Befehl auszuführen. Das ist so, als würde man ein ganzes Gebäude in Brand setzen, nur um eine Maus loszuwerden.

Könnte Redis stattdessen neu gestartet werden? Ich denke, es handelt sich um eine In-Memory-Datenbank, sodass nichts über einen Server-Neustart hinaus erhalten bleibt. Und ein Server-Neustart ist nicht zerstörerisch (und kann jederzeit auftreten.)

Das ist falsch. Redis persistiert auf die Festplatte.

Ich schätze Ihre Einsicht und Expertise.

Folgende Schritte habe ich versucht:

  • Update über das Admin-Panel (gescheitert/niemals gestartet)
  • Befolgung der manuellen Discourse-Aktualisierungsschritte (in den letzten drei Releases)
  • Mehrere Neuaufbauten der Launcher-App
  • Suche im Forum nach einem ähnlichen Problem und einer Lösung
  • Schließlich eine ChatGPT-Abfrage, die Redis-Optionen aufdeckte, obwohl ChatGPT selbst eine unwahrscheinliche Lösung nannte (und die Dinge vorschlug, die ich bereits versucht hatte).

Das war die einzige Maßnahme, die das Problem behoben hat.

Ich verstehe die Analogie.

Was hätte ich noch tun können, um das Problem besser zu verstehen und als Alternative zu lösen?

Um Missverständnisse zu vermeiden: Bei dir hat

cd /var/discourse
git pull
./launcher rebuild app

nicht funktioniert? (Wie genau hat es nicht funktioniert? Handelt es sich um eine Standard-Installation?)

Das Git-Pull wurde nicht ausgeführt, aber der Launcher-Rebuild wurde durchgeführt.

Dieser Prozess verlief problemlos, es wurde jedoch nicht geklärt, dass das Admin-Panel davon ausgeht, dass ein Update noch läuft.

Danke – die Beobachtung ist also, dass das Admin-Panel-Update bei dir nicht funktioniert. Außerdem funktioniert es bei mir schon seit geraumer Zeit nicht! Es wäre besser, wenn es funktionieren würde.

Ich bevorzuge das Aktualisieren über die Kommandozeile, aber ich habe gerade ein Docker- und Discourse-Update über die Benutzeroberfläche auf meinem iPhone 15 durchgeführt, und dieses Mal hat es recht gut funktioniert (Standardinstallation bei DigitalOcean).

Normalerweise führe ich alles über die CLI auf einem meiner Computer durch, da es beim letzten Mal, als ich es über die Benutzeroberfläche versucht habe (vor einigen Monaten), bei mir nicht funktioniert hat, sodass ich ohnehin per SSH einloggen musste.

Was gibt free -h zurück?

Worauf ist UNICORN_WORKERS in app.yml gesetzt?

Worauf ist db_shared_buffers in app.yml gesetzt?

Ist db_work_mem in app.yml auskommentiert?

Wie viele (v)CPUs hat dein Server?

Free -h zeigt 3,8 GiB Speicher an, 1,7 GiB belegt, 134 MiB frei, 1,0 GiB gemeinsam genutzt, buff/cache 2,0 GiB, verfügbar 788 MiB

Swap 2,0 GiB, 290 MiB belegt, 1,7 GiB frei

UNICORN_WORKERS: 4

db_shared_buffers 1 GB

db_work_mem ist auskommentiert und auf 40 MB gesetzt

Ich verwende eine Instanz mit 2 vCPU und 4 GB RAM.

Danke für die Fragen! :smiley: