Schlechte MF-Übersetzungszeichenfolge im hebräischen Client-Locale verursacht tödlichen Site-Fehler

Dies ist vor etwa 3 Tagen nach einem Upgrade über die WebUI passiert. Die Website ist etwa 2 Monate alt, hat etwa 500 Benutzer und lief bisher gut.

Ich habe versucht, neu zu starten, dann neu zu erstellen und dann Redis zu leeren. Ich bekomme immer noch diesen weißen Bildschirm.

Was versuche ich als Nächstes? Ohne Plugins starten? Zerkratzen und aus dem Backup wiederherstellen?

Relevante Protokolle:

rails/production_errors: leer

rails/production:
  Started GET "/" for 147.234.130.218 at 2024-07-21 08:38:13 +0000
  Processing by ListController#unread as HTML
  Rendered layout layouts/application.html.erb (Duration: 114.3ms | Allocations: 34494)
  Completed 500 Internal Server Error in 264ms (ActiveRecord: 0.0ms | Allocations: 88191)

Sie haben dies wahrscheinlich schon versucht, aber nur um sicherzugehen: Wird der abgesicherte Modus auch fehlschlagen?

Ich wusste bis jetzt nichts davon, danke, aber das Problem bleibt bestehen.
Wie gesagt, alles sieht in Ordnung aus, wenn ich mich abmelde (technisch gesehen Cookies lösche), es schlägt fehl, wenn ich mich anmelde.

Ich gebe zu, ich habe keine Erfahrung mit Rails und wie man damit ausführlichere Protokolle erstellt.

Nun, für mich ist Rails… nun, mehr als nur schwierig.

Aber 500 ist ein Fehler des Servers. Es besteht eine hohe Wahrscheinlichkeit, dass er von einem Plugin stammt, aber es kann auch eine Fehlkonfiguration sein. Der abgesicherte Modus kann einen Hinweis darauf geben, was kaputt ist, wenn das Problem auf der Seite des Benutzers auftritt. Aber wenn etwas, das die Funktionalität verändert, serverseitig kaputt ist, dann ist der abgesicherte Modus zahnlos.

Sicher, Sie können jedes Plugin deaktivieren und neu erstellen, um zu sehen, ob sich die Situation verbessert. Und danach anfangen herauszufinden, welches. Oder zumindest alle Plugins deaktivieren, die nicht von Discourse sind – und selbst das ist keine absolute Sicherheit, da nicht alle offiziellen hier im Einsatz sind.

Aber das kostet ziemlich viel Zeit. Vielleicht ist es klüger, zu warten, bis jemand, der sich wirklich auskennt, sich meldet.

Ein Blick in /logs kann oft zusätzliche Details aufdecken, oder die Browserkonsole beim Versuch, die Seite zu laden.

1 „Gefällt mir“

In der Browserkonsole (Firefox) ist nichts Ungewöhnliches zu sehen, und die einzige Protokollzeile, die ich bei der Anfrage sehe, ist im obigen Originalthema gepostet.

Was ist mein nächster Schritt? ./launcher bootstrap und Wiederherstellung aus einem Backup?

Ich glaube, Jammy meint die Protokolle von Discourse. Können Sie sich als Administrator anmelden?

1 „Gefällt mir“

Ich bin der Administrator, und wenn ich mich anmelde, sind die Informationen spärlich, also habe ich mich intern erkundigt…

Ja, ich bezog mich auf die Seite YourSite/logs. Wird dort nichts für den Fehler aufgezeichnet?

1 „Gefällt mir“

Oh je… ein fehlender Locale-Übersetzung ist ein Grund, einen 500er zu werfen?!

EDIT: Da dies zu einem Bug-Report wurde – Ich glaube nicht, dass das Problem bei den Sprachdateien selbst liegt (da das Kopieren der *.en.yml-Dateien nach he.yml nicht geholfen hat). Ich schlage vor, dass solche Probleme zumindest fehlerverzeihend fehlschlagen und auf Englisch zurückfallen sollten.

Soweit ich gelesen habe, gibt es keine Möglichkeit, Git auf einen letzten funktionierenden Commit zurückzusetzen, bevor dieser Fehler aufgetreten ist? Wenn dies die Tests bestanden hat, dann müssen wir wohl einen neuen Test hinzufügen. Dieser Commit funktioniert nicht, wenn Ihre Website zufällig die „falsche“ Locale verwendet. Was ist der schnellste Weg, um die Website wieder zum Laufen zu bringen, und wie kann ich dies in Zukunft vermeiden?

Ich bin mir nicht ganz sicher, ob es nur eine Frage des fehlenden Gebietsschemas ist. Auf diesem Screenshot sind auch Ihre MaxMind-Einstellungen falsch.

Meine reine Vermutung ist, dass etwas anderes kaputt ist und deshalb auch der Rest kaputt ist. Ich würde /.launcher rebuild app ausführen und versuchen herauszufinden, ob etwas Seltsames dabei herauskommt.

Welche Sprache verwenden Sie als primären Locale?

Hebräisch

und ich habe mehrmals neu aufgebaut, keine Neuigkeiten.

Ich würde versuchen, die Rails-Konsole zu öffnen und SiteSetting.default_locale='en' zu setzen.

Alternativ: User.find_by(username: 'my-username').update(locale: 'en')

1 „Gefällt mir“

Muss ich etwas ausführen, um die Standard-Locale meiner Benutzer zu überschreiben? Denn das allein hat nicht viel geändert.

Oh gut. Das hat für mich funktioniert. Die Texte werden immer noch korrekt angezeigt (von rechts nach links ausgerichtet) und nur die Benutzeroberfläche ist auf Englisch. Es ist umständlich, aber benutzbar.

Also werde ich alle Benutzer damit durchlaufen und wenn das Hebräische wieder funktioniert, werde ich sie alle zurückiterieren?

Ich würde mir etwas Zeit nehmen, um den Fehler in der Locale zu finden und ihn zu beheben, bevor ich das tue.

Ich möchte zuerst die Website zum Laufen bringen. Wenn die Übersetzung von Crowdin fehlerhaft ist, kann ich sie nicht beheben.