Benutzerzusammenführung fehlgeschlagen, beschädigte Datenbankeinträge durch Drittanbieter-Plugin

Ursprünglicher Titel: Startseite des Forums nicht erreichbar (leerer Bildschirm oder 404)

Ich bin Moderator im SocialHub-Forum unter https://socialhub.activitypub.rocks, dem Technikforum für das ActivityPub-Protokoll, das das soziale Ökosystem des Fediverse antreibt.

Derzeit findet eine 4-tägige ActivityPub-Konferenz statt, und die Aktivität im Forum ist höher als gewöhnlich. Heute Morgen stellte ich fest, dass die Hauptseite des Forums, wenn sie direkt über die URL aufgerufen wird, einen vollständig leeren Bildschirm anzeigt (kein HTML wird zurückgegeben).

Tiefe Links wie Spritely Project: The Super Exciting Future Of Fediverse - ActivityPub - SocialHub funktionieren jedoch weiterhin und ermöglichen den Zugriff auf andere Funktionen wie die Suche und das Admin-Panel. Beim Klicken auf das Logo oben links wird anstelle des leeren Bildschirms eine 404-Seite angezeigt.

Ich habe die für die Serververwaltung Verantwortlichen informiert, und möglicherweise ist ein Neustart des Servers alles, was erforderlich ist. Falls jedoch jemand dieses Problem als schwerwiegender erkennt, wäre ich Ihnen für Ihr Feedback sehr dankbar, damit wir rechtzeitig vor Beginn der Konferenzvorträge heute wieder voll funktionsfähig sind.

PS: Das Forum läuft mit der Version v2.6.0.beta1

Vielleicht möchten Sie die Ressourcennutzung überprüfen. Mehr Besucher bedeuten, dass mehr Ressourcen genutzt werden.

Die Erhöhung der Serverressourcen hilft bei der Bewältigung der gestiegenen Besucherzahlen.

1 „Gefällt mir“

Danke! Die Server-Verwalter sind noch nicht online, aber ich habe ihnen diesen Link weitergeleitet :slight_smile:

Hallo, ich habe versucht, auf die neueste Version zu aktualisieren, jedoch ohne Erfolg, und habe versucht, die Komponente Force Mobile Homepage, die wir gestern hinzugefügt haben, zu deaktivieren.

Weitere Hinweise wären willkommen. Ich werde mich in den Logs nach relevanten Fehlern umsehen…

So sieht ein Aufruf der Startseite aus dem Container heraus aus:

Started GET "/" for 37.172.69.223 at 2020-10-04 07:32:15 +0000
Processing by CategoriesController#index as HTML
Completed 404 Not Found in 281ms (ActiveRecord: 0.0ms | Allocations: 67648)
ActiveRecord::RecordNotFound (Couldn't find all Users with 'id': (36, 50) (found 1 results, but was looking for 2).)
lib/plugin/instance.rb:259:in `public_send'
lib/plugin/instance.rb:259:in `block (2 levels) in add_to_class'
(eval):48:in `_fast_attributes'
lib/freedom_patches/ams_include_without_root.rb:57:in `include!'
app/controllers/categories_controller.rb:61:in `block (2 levels) in index'
app/controllers/categories_controller.rb:40:in `index'
app/controllers/application_controller.rb:354:in `block in with_resolved_locale'
app/controllers/application_controller.rb:354:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:68:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:336:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:22:in `call'
lib/middleware/request_tracker.rb:176:in `call'
1 „Gefällt mir“

Also, wenn man die Homepage-Einstellung von Kategorien und Neueste auf ‘Kategorien und Ausgewählte’ ändert, erhält man wieder Zugriff auf die Homepage. Das muss vorerst reichen… Ich vermute, es liegt an einer Art Komponenten-Interaktion, aber wir werden sehen. Jeder weitere Hinweis ist sehr willkommen. Die Show muss weitergehen :slight_smile:

1 „Gefällt mir“

Ihr Problem scheint beim Laden der neuesten Beiträge aufzutreten, was einen 404-Fehler verursacht.

Hat jemand die Bezeichnung dafür geändert?

Gehen Sie zu den Einstellungen, suchen Sie nach „latest“ und schauen Sie, was passiert.

Vielen Dank für den Vorschlag, @IAmGav: Wir haben keine Anpassungsmöglichkeiten für Zeichenketten, die „Latest

Ich denke, das Problem liegt bei ActiveRecord::RecordNotFound (Konnte nicht alle Benutzer mit 'id': (36, 50) finden (1 Ergebnis gefunden, aber 2 wurden gesucht).)

Die IDs entsprechen einem Benutzerkonto, das zusammengeführt wurde, aber der Prozess scheint abgebrochen zu sein…

Ich denke auch, dass dies das Problem ist. Kein Experte, aber ich vermute, es gibt einen Beitrag, der auf das alte Konto verweist, das nicht mehr existiert (und er erscheint in „Top“, „Neueste“ und der Kategorie „Konferenz“). Wenn dies das Problem ist, wäre die Ausführung einer SQL-Abfrage zum Löschen des Beitrags oder zum Aktualisieren der Benutzer-ID darin möglicherweise eine Option? Wie wäre die Syntax?

Der Filter ‘Benutzer zusammenführen’ in den Admin-Aktionen zeigt kein Protokoll an. Ich vermute, der Zusammenführungsprozess ist auf irgendeine Weise fehlgeschlagen. @Team, wie kann ich einen fehlgeschlagenen Benutzerzusammenführungsprozess untersuchen und beheben? Das Ergebnis scheint jedoch in Ordnung zu sein: Das Benutzerkonto existiert mit beiden E-Mail-Adressen. Es müssen irgendwo in einigen Beiträgen hängende IDs vorhanden sein…

OK, wir haben das Problem auf ein einzelnes Thema eingegrenzt…

1 „Gefällt mir“

Das könnte helfen

Nein, es wird angegeben, dass der (Quell-)Benutzer nicht existiert. Ich vermute, dass der Schritt DiscourseEvent.trigger(:merging_users, @source_user, @target_user) nicht abgeschlossen wurde. Wo kann ich den Code finden?

Los geht’s…

[39] pry(main)> PostReplyKey.where(user_id: 36)
=> [#<PostReplyKey:0x0000558954b92d68 id: 9793, user_id: 36, post_id: 3409, reply_key: "00257885-fe73-e76d-09fb-f0f708c2f032", created_at: Sat, 03 Oct 2020 19:37:20 UTC +00:00, updated_at: Sat, 03 Oct 2020 19:37:20 UTC +00:00>,
 #<PostReplyKey:0x0000558954bd6e78 id: 9120, user_id: 36, post_id: 3174, reply_key: "b726e441-1c6c-bd60-27ac-8d8d5feef3d7", created_at: Fri, 02 Oct 2020 14:21:48 UTC +00:00, updated_at: Fri, 02 Oct 2020 14:21:48 UTC +00:00>,
 #<PostReplyKey:0x0000558954bd6db0 id: 9802, user_id: 36, post_id: 3413, reply_key: "86e179a1-7516-616c-1040-c26c0539f39d", created_at: Sat, 03 Oct 2020 19:41:36 UTC +00:00, updated_at: Sat, 03 Oct 2020 19:41:36 UTC +00:00>,
 #<PostReplyKey:0x0000558954bd6ce8 id: 9821, user_id: 36, post_id: 3418, reply_key: "573f48a4-8263-4759-44f0-f6cb26b66f38", created_at: Sat, 03 Oct 2020 20:37:40 UTC +00:00, updated_at: Sat, 03 Oct 2020 20:37:40 UTC +00:00>,
 #<PostReplyKey:0x0000558954bd6c20 id: 9822, user_id: 36, post_id: 3419, reply_key: "9371479c-eeb4-1009-176d-761a854a4ddb", created_at: Sat, 03 Oct 2020 20:40:08 UTC +00:00, updated_at: Sat, 03 Oct 2020 20:40:08 UTC +00:00>,
 #<PostReplyKey:0x0000558954bd6b58 id: 9400, user_id: 36, post_id: 3245, reply_key: "e1cd57aa-a811-21f9-5e24-84439e184a8e", created_at: Fri, 02 Oct 2020 21:35:12 UTC +00:00, updated_at: Fri, 02 Oct 2020 21:35:12 UTC +00:00>,
 #<PostReplyKey:0x0000558954bd6a90 id: 8613, user_id: 36, post_id: 3067, reply_key: "407edb15-e89d-4369-9fee-1e5eab83385d", created_at: Wed, 30 Sep 2020 13:50:17 UTC +00:00, updated_at: Wed, 30 Sep 2020 13:50:17 UTC +00:00>,
 #<PostReplyKey:0x0000558954bd69c8 id: 9517, user_id: 36, post_id: 3288, reply_key: "140a48d2-1a40-d429-f6e2-2bbe37b4865d", created_at: Sat, 03 Oct 2020 09:54:40 UTC +00:00, updated_at: Sat, 03 Oct 2020 09:54:40 UTC +00:00>,
 #<PostReplyKey:0x0000558954bd6900 id: 9736, user_id: 36, post_id: 3388, reply_key: "76cacf9b-5353-0653-806d-f3c2df6689eb", created_at: Sat, 03 Oct 2020 18:37:11 UTC +00:00, updated_at: Sat, 03 Oct 2020 18:37:11 UTC +00:00>,
 #<PostReplyKey:0x0000558954bd6838 id: 8643, user_id: 36, post_id: 3011, reply_key: "6d384213-98db-652c-89eb-1979731bb311", created_at: Wed, 30 Sep 2020 20:55:31 UTC +00:00, updated_at: Wed, 30 Sep 2020 20:55:31 UTC +00:00>,
 #<PostReplyKey:0x0000558954bd6770 id: 9772, user_id: 36, post_id: 3400, reply_key: "1e9e0b2e-ecd6-3654-d0da-6e01982a890f", created_at: Sat, 03 Oct 2020 19:22:38 UTC +00:00, updated_at: Sat, 03 Oct 2020 19:22:38 UTC +00:00>]

Also habe ich versucht herauszufinden, was damit zu tun ist… Die Berechtigungen für den bestehenden Benutzer zu erteilen, löst das Problem nicht. Das Löschen ebenfalls nicht.

Nächster Schritt: Die betroffenen Themen neu aufbauen, die alten löschen und schauen, was passiert – es sei denn, jemand hat eine bessere Idee…

1 „Gefällt mir“

PostReplyKey bezieht sich auf die Antwortadresse in E-Mails und hat keine Auswirkung auf die Darstellung der Themenliste.

Beim Prüfen des Stacktraces schlägt es beim Serialisieren von TopicListSerializer fehl, und zwar irgendwo in lib/instance/public.rb.

Überprüfe die Liste der hervorgehobenen Nutzer für die alte Benutzer-ID (die Gruppe von Avataren, die auf der Startseite angezeigt wird).

1 „Gefällt mir“

Hallo @riking, danke für deine Antwort… AFAIK gibt es außer PostReplyKey keine Erwähnung dieser fehlenden Benutzer-ID. Es könnte sich aber nicht um die tatsächliche alte Benutzer-ID handeln, da ich diese nicht kenne. Wie denkst du, könnte ich sie finden – oder: was sollte ich in den Logs grep-en?

Wenn es sich um in einem Thema hervorgehobene Benutzer handelt, sollte diese Abfrage dies finden:

SELECT id
FROM topics
WHERE featured_user1 = 1234
OR featured_user2 = 1234
OR featured_user3 = 1234
OR featured_user4 = 1234
OR last_post_user_id = 1234

Die Abfrage lieferte mit der alten Benutzer-ID kein Ergebnis, aber mit der neuen Benutzer-ID ein Thema, das bereits als problematisch identifiziert wurde. Ich habe das Thema in eine andere Kategorie verschoben, und tatsächlich ist die Kategorie ActivityPub Conference 2020 - SocialHub nun wieder sichtbar.

Ich vermute nun, dass es irgendwo in den Daten im Zusammenhang mit dem Thema 951 eine Referenz auf die fehlende Benutzer-ID 36 gibt, aber ich konnte sie bisher nicht finden. Oder gibt es eine andere Abhängigkeit in Bezug auf Benutzer 295, die ich übersehe?

Hast du einen Stacktrace für diesen Fehler?

Nichts weiter als das, was ich unter User merge failed, corrupted database entries due to third party plugin - #4 by hellekin gepostet und im Anschluss kommentiert habe:

1 „Gefällt mir“

Oh, ich habe den Stacktrace in User merge failed, corrupted database entries due to third party plugin - #4 by hellekin übersehen. Das Problem liegt also an einem Plugin. Ich vermute, eines deiner Plugins hat eine Art Benutzerinformationen gespeichert, die nicht zusammengeführt wurden. Könntest du mir bitte eine Liste der installierten Plugins geben?

2 „Gefällt mir“