Ich habe gerade auf Wunsch einer Person den Benutzernamen von xxx geändert. Sie wollte den inaktiven Benutzernamen yyy übernehmen. Daher habe ich zunächst den inaktiven Benutzernamen yyy in etwas anderes wie yyy1 geändert und anschließend den Benutzernamen dieser Person von xxx in yyy geändert.
An diesem Punkt konnte der Benutzer zunächst nichts mehr veröffentlichen, und ich sah folgenden Fehler in den Logs:
Ich habe versucht, den Benutzernamen wieder auf den vorherigen zurückzusetzen, doch nun ist die gesamte Historie des Benutzers verschwunden. Was genau ist hier schiefgelaufen?
Übrigens weiß ich nicht, warum ich bei diesem Benutzer (username_lower)=(mina) überhaupt einen Fehler bekomme. Ich habe nichts daran geändert, und es scheint ein inaktiver Benutzer zu sein. Allerdings stelle ich auch ein seltsames Verhalten auf seinem Profil fest. Wenn ich seine Benachrichtigungsseite öffne, erhalte ich einen 404-Fehler.
Okay, ich habe die Schritte durchgegangen. Falls ich etwas anders gemacht habe als du, lass es mich bitte wissen.
Es gibt zwei Benutzer:
xxx (aktives Konto)
yyy (inaktives Konto)
Ändere yyy zu yyy1
Ändere xxx zu yyy
( hat bei mir funktioniert)
Versuche, mit dem neuen yyy-Konto einen Beitrag zu verfassen
( hat bei mir funktioniert)
Ändere yyy zurück zu xxx
( hat bei mir funktioniert, kein Verlust der Benutzerhistorie)
Ich hatte während des gesamten Vorgangs keine Probleme. Eine Sache ist zu beachten: Nachdem du den Benutzernamen über die Benutzer-Admin-Seite geändert hast, musst du die Seite aktualisieren, damit die Schaltfläche „Öffentliches Profil anzeigen
Ja, ein Klick auf den Avatar führt mich zu deren Seite. Allerdings scheint mir, dass deren Seite irgendwie inaktiv ist. Zum Beispiel kann ich deren E-Mail-Adresse nicht anzeigen oder deren Konto übernehmen:
Gemäß dem, was ich in diesem Bericht sehe, habe ich zuerst fatemeh in fatemeh12 geändert. Dann habe ich fatemeh_baghdadi in fatemeh geändert. Nach einer Weile sagte mir der Benutzer, dass er nichts mehr posten kann. Ich dachte also, dass vielleicht etwas beim Ändern des Benutzernamens schiefgelaufen ist, und versuchte, den Benutzernamen in einen Namen zu ändern, der bisher noch nicht verwendet wurde. Also änderte ich fatemeh (früher fatemeh_baghdadi) in fatemeh74. Dann sah ich, dass deren Verlauf komplett gelöscht wurde, und wurde nervös. Ich versuchte also, den Benutzernamen wieder auf den ursprünglichen zurückzuändern: von fatemeh74 zu fatemeh_baghdadi und erneut von fatemeh_baghdadi zu fatemeh_baghdadi5, aber es wurde nichts besser. Jetzt habe ich zwei verschiedene Benutzer, fatemeh74 und fatemeh_baghdadi5, die theoretisch eine Person sein sollten, aber tatsächlich sind es zwei Personen, wobei eine anscheinend nicht richtig funktioniert.
Ich gebe mein Bestes, um hier Schritt zu halten. Das klingt nach einer sehr seltsamen Situation!
Könntest du bitte präzisieren, was du meinst, wenn du sagst, dass ihr Verlauf komplett gelöscht wurde? Sollte unter dem Aktivitätsbereich des Profils von fatemeh_baghdadi5 eine Liste mit verschiedenen Themen und Antworten zu sehen sein?
Falls ja, sind diese Beiträge dann nun dem Konto fatemeh74 zugeordnet? Sie sollten irgendwo auf der Seite existieren und einem bestimmten Benutzer zugeordnet sein. Aus der Perspektive eines anonymen Benutzers kann ich keinen Benutzer mit dem Nutzernamen fatemeh74 auf deiner Seite finden.
Es gibt einen Hintergrundprozess namens EnsureDbConsistency, der alle 12 Stunden ausgeführt wird. Es könnte interessant sein, ihn entweder manuell über Sidekiq auszulösen oder abzuwarten, ob sich alles innerhalb der nächsten 12 Stunden automatisch korrigiert.
Falls du am Ende doch zwei Konten hast, die eigentlich eines sein sollten, kannst du sie zusammenführen. Ich würde jedoch auf jeden Fall vorher ein Backup erstellen.
Ohne direkten Zugriff auf alles ist es wirklich schwer zu verstehen, was genau los ist, aber hoffentlich können wir das gemeinsam herausfinden!
Im Moment, als ich den Benutzernamen geändert habe, habe ich auf ihr Profil geschaut und sah keine Beiträge usw., aber es wurde nach einer Weile behoben. Allerdings ist jetzt fatemeh74, was tatsächlich die richtige Person zu sein scheint, irgendwie inaktiv. Ich meine, wie du siehst, können wir ihre Profilseite nicht sehen, während ihre Beiträge und andere Dinge vorhanden sind. So wie hier:
Sie sind tatsächlich nicht dasselbe, ich habe ihre E-Mail-Adresse und ihre ID geprüft, und sie sind völlig unterschiedlich. Allerdings sollten sie laut den Schritten, die ich zur Änderung der Benutzernamen befolgt habe, gleich sein, und eigentlich sollte ich hier nicht zwei Benutzer haben.
Danke für das Beispiel. Das ist definitiv besorgniserregend.
Du findest es unter /sidekiq/scheduler aufgelistet. Es lohnt sich, es zu versuchen, aber basierend auf dem, was du gerade gepostet hast, klingt es so, als gäbe es ein tieferliegendes Problem.
Benutzernamen sind im Wesentlichen nicht groß-/kleinschreibungsabhängig, sodass Sie eigentlich nicht zwei Benutzer mit demselben Benutzernamen haben sollten. Allerdings:
Sie können sehen, dass bei der Suche nach fatemeh12 anscheinend zwei unterschiedliche Benutzernamen zurückgegeben werden. Das hätte eigentlich nicht passieren dürfen (ich kann es nicht reproduzieren). Beide scheinen zum selben Profil zu führen.
Ich habe derzeit keine Idee, wie es weitergehen soll. Wenn bis etwa zu dieser Zeit morgen niemand reagiert, werde ich versuchen, jemanden mit frischen Ideen zu finden. Falls Sie in der Zwischenzeit weitere Informationen finden, die Ihrer Meinung nach relevant sind, posten Sie diese bitte.
Was ich bisher verstanden habe, ist folgendes: Im allerersten Schritt habe ich versucht, fatemeh in fatemeh12 zu ändern, um diesen Benutzernamen freizugeben. Allerdings gab es bereits einen Benutzernamen Fatemeh12, sodass ich eigentlich nicht hätte fatemeh in fatemeh12 ändern dürfen. Trotzdem hat es mich auf seltsame Weise dazu gebracht, und ab diesem Punkt ist die Datenbank irgendwie kaputtgegangen.
@tshenry hast du etwas gefunden? Momentan ist der Benutzer fatemeh74, der verschwunden war, auf irgendeine Weise wiederhergestellt. Ich weiß leider nicht genau, wie das passiert ist. Ich möchte sicherstellen, dass das in Zukunft nicht mehr vorkommt, daher muss ich herausfinden, warum ich dieselben Benutzernamen mit Unterschieden in Groß-/Kleinschreibung habe und warum Discourse so etwas nicht verhindert. Mein Discourse ist bereits aktualisiert.
Hey Das ist großartig zu hören! Ich hatte gehofft, dass ein Hintergrundjob nach einiger Zeit aushilft. Es klingt, als wäre genau das passiert.
Ich hatte bisher keine Gelegenheit, das weiter zu untersuchen. Da wir keinen Zugriff auf die Datenbank deiner Seite haben, sind unsere Unterstützungsmöglichkeiten sehr begrenzt. Eine solche tiefgehende Analyse können wir nur für unsere gehosteten Kunden durchführen.
Dies ist der erste Vorfall dieser Art, von dem wir hören, und ich kann das Verhalten nicht reproduzieren. Ich vermute, es handelt sich um einen Randfall in deiner Instanz. Wir werden natürlich in Zukunft auf ähnliche Vorfälle achten. Wenn du auf Nummer sicher gehen möchtest, empfehle ich, vor einer Änderung des Benutzernamens noch einmal zu prüfen, ob es bereits jemanden mit demselben Benutzernamen gibt.
Wir erleben dieses Problem ebenfalls schon seit langer Zeit. Natürlich gibt es keine Möglichkeit nachzuvollziehen, wie die Datenbank in diesen Zustand gelangt ist, aber immer wieder kommt es vor, dass sich Benutzer während der Umbenennungsfrist selbst in bereits existierende Namen umbenennen. Dies gilt jedoch auch für Umbenennungen durch Administratoren.
Wir verwenden keine Unicode-Benutzernamen, und dies ist gelegentlich ziemlich problematisch, da dies den Synchronisationslauf des Patreon-Plugins stört, auf das wir für externe Policy-Dienste stark angewiesen sind.