Git-Hang und Admin/Mod-Benutzerkonten: Oops-Fehlerseite

Ja, ich glaube, das ist das Problem. Die LLM sagt, der Code verarbeitet eine Liste von Einträgen nicht gut, daher der 500er-Fehler.

Okay, sieht das so aus, als wären wir im Bereich von Contribute > Bug?

Ich denke, es ist ein Bug, und ich gehe davon aus, dass die Behebung einfach ist, aber ich verstehe die neuen Kategorien nicht wirklich. (Und ich würde persönlich keinen Code einreichen, wenn ich das Gefühl habe, dass ich es nicht vollständig verstehe.)

Dann ist da noch die Frage, ob der Zustand deiner Datenbank von einem anderen Bug stammt, der ebenfalls behoben werden muss.

Da dieses Thema nur drei Beiträger hatte, könnte ein neues Bug-Report-Thema nützlich sein – falls ein Moderator es zusammenführen oder neu kategorisieren möchte, kann er das jederzeit tun.

Ok, das #contribute:bug-Topic habe ich tatsächlich noch nie gesehen, und so weit ich mich erinnern kann, habe ich dort auch noch nie gepostet. Außerdem hätte ich vermutlich nicht das nötige Können, um festzustellen, ob es sich um einen Bug handelt oder nicht.

Außerdem hast du wahrscheinlich recht: Es könnte historische Datenbankprobleme geben, die an diesem empfindlichen Punkt zum Auslöser wurden.

Obwohl es erforderlich ist, den Admin-Account wieder zugänglich zu machen – und zwar eher früher als später, liegt das wohl in den Händen der Götter. Aber zumindest sind wir der Ursache des Problems wahrscheinlich auf die Spur gekommen, also drücken wir die Daumen!

Danke für deine Hilfe. :+1:

Außerdem frage ich mich, ob es sinnvoll wäre, dem Benutzer den Admin-Status zu entziehen und ihn stattdessen auf Moderator-Ebene zu setzen. Vielleicht umgeht man damit das Problem beim Login.

Ich werde es nach einer Sicherung meiner Daten ausprobieren.

Meine Sorge ist, dass Daten verloren gehen oder etwas kaputtgeht, das ich gar nicht erst überprüfen kann, falls alles auf den ersten Blick in Ordnung scheint und keine Fehlermeldungen erscheinen. :thinking:

Gern geschehen. Es war interessant.

Vermutlich gäbe es in SQL eine kleine Möglichkeit, den doppelten Eintrag zu entfernen, aber ich würde das persönlich nicht leichtfertig tun.

Laut LLM ist es auch möglich, die Rails-Konsole zu nutzen, um die zehnzeilige Ruby-Funktion zu aktualisieren und zu härten. Das sollte zumindest sicher sein, da ein Neustart das eigentliche Ruby-Programm von der Festplatte neu laden würde.

Ich möchte das hier einfügen, um es zu sichern, damit ich den Tab schließen kann – ungetesteter Code vom LLM, der hier als Monkey Patch zum Anwenden in der Rails-Konsole auf ein laufendes System dargestellt wird, aber auch einen vom LLM vorgeschlagenen Fix für diese Bruchstelle enthält, die den Fehler verursacht:

# Re-open the CurrentUserSerializer to override the broken method
class CurrentUserSerializer < ApplicationSerializer
  def has_new_upcoming_changes
    last_visited = object.custom_fields["last_visited_upcoming_changes_at"]
    
    # Extract string if cached as an array by the preloader
    last_visited = last_visited.first if last_visited.is_a?(Array)
    
    return false if last_visited.blank? && object.created_at < Discourse.site_creation_date + 1.hour
    cutoff = last_visited.present? ? Time.zone.parse(last_visited.to_s) : object.created_at
    UpcomingChangeEvent.added.not_backfilled.where("created_at > ?", cutoff).exists?
  end
end

Admin-Rechte widerrufen

Die Aktionen beziehen sich auf den ursprünglichen gesperrten Admin-Benutzer:

  1. Admin-Rechte widerrufen + Moderator-Rechte vergeben = Login fehlgeschlagen/gleicher Fehler.

  2. Moderator-Rechte widerrufen

  • Erster Login (kein Fehler), aber das System bleibt beim Zwei-Faktor-Authentifizierungs-/Anmelde-Ladekreis hängen
  • Etwa 10 Minuten gewartet (der Server zeigte einen Anstieg der Last beim Login), aber es passierte weiterhin nichts
  • Allerdings zeigt der Tab „Aktive Benutzer“ an, dass sich der Benutzer vor X Minuten angemeldet hat, hmm :thinking:
  • Zweiter Login in einem anderen (privaten) Fenster versucht, der erfolgreich ist!

Das stellt also einen Workaround für einen Admin-Benutzer dar, der möglicherweise Nachrichten/Chats lesen muss, löst das Problem aber letztlich nicht.

Anschließend wurde mit einem anderen Admin-Konto Admin-Rechte vergeben an das angemeldete ehemalige Admin-Benutzerkonto ausgeführt

  • Während der Anmeldung erscheint eine Admin-Update-Nachricht, die den Erfolg anzeigt.
  • Seite aktualisiert und der Fehler erscheint erneut

Ich kann im Thema “Git hang” nicht posten, da es seit dem 28. September geschlossen ist, aber als ich vor wenigen Minuten einige Verzögerungen bemerkt habe, dachte ich, ach, vielleicht ist Git wieder ausgefallen und verursacht Probleme, und tatsächlich zeigte downdetector.com in genau diesem Moment einen großen Ausfall bei GitHub. :thinking: