Fehler bei permanenter Löschung

Ich glaube, es gibt einen Fehler bei der permanenten Löschung.

Ich lösche ein paar Beiträge. Jetzt kann ich die Liste der gelöschten Beiträge nicht mehr öffnen.

Sie können hier sehen, dass ich immer noch 342 gelöschte Beiträge habe. Aber wenn ich darauf klicke. Es führt zu einer 404-Seite.

Ich kann immer noch die Löschliste anderer Benutzer öffnen, aber nicht meine eigene.

Gibt es etwas, das wir tun können, um das zu beheben?

3 „Gefällt mir“

Okay, ich glaube, ich habe die Schritte zur Reproduktion des Fehlers herausgefunden.

Ich bin mir nicht sicher, ob Sie zwei Konten benötigen, aber hier ist meine Situation:

  1. Konto A erstellt ein Thema, heftet es an und schließt es.
  2. Konto A löscht das Thema weich.
  3. Warten Sie 5 Minuten, melden Sie sich bei Konto B an und öffnen Sie die Löschliste von Konto A (z. B. www.example.com/u/username/deleted-posts).
  4. Suchen Sie den Beitrag, den Konto A gerade weich gelöscht hat, und öffnen Sie ihn.
  5. Wenn Sie versuchen, den Beitrag dauerhaft zu löschen, wird eine Fehlermeldung angezeigt: Der Beitrag kann nicht gelöscht werden, da es andere Beiträge gibt.
  6. Sie müssen die Nachricht zum Anheften und Schließen des Themas unter dem Beitrag löschen und dann erneut versuchen, ihn dauerhaft zu löschen.
  7. Sie werden erfolgreich sein, aber jetzt können Sie die Löschliste von Konto A nicht mehr öffnen.
3 „Gefällt mir“

Könnte sich das bitte jemand ansehen?

Ich habe einige Beiträge mit sensiblen Informationen bereinigt und jetzt stecken wir fest…

3 „Gefällt mir“

Können Sie die gelöschten Beiträge aus dem Thema/der privaten Nachricht noch abrufen und sie von dort endgültig löschen, oder können Sie Ihre gelöschten Beiträge gar nicht mehr sehen?

2 „Gefällt mir“

Ich kann von dem Beitrag aus darauf zugreifen.

Da ich jedoch nicht weiß, um welche Beiträge es sich handelt, ist die Liste der zu löschenden Beiträge entscheidend.

Ohne sie muss ich alle privaten Nachrichten und öffentlichen Themen manuell durchgehen, um sie zu finden.

2 „Gefällt mir“

Ich habe auch deleted-posts.json ausprobiert. Aber die Informationen enthalten keine gelöschten Beiträge.

Sie zeigen nur Dinge wie „user_badges“ und andere Benutzerinformationen an.

2 „Gefällt mir“

Wenn ich irgendwie eine Liste mit gelöschten Beitrags-IDs bekommen könnte, wäre das auch hilfreich.

2 „Gefällt mir“

Ich versuche, dies zu reproduzieren:

  • Admin A erstellt ein neues Thema, heftet es global (für immer) an und schließt es dann.
  • Admin A löscht das Thema dann weich.

  • Admin B findet dieses Thema, indem er von seinem Profil aus auf die Liste /deleted-posts von Admin A zugreift.
  • Admin B versucht, das Thema dauerhaft zu löschen – erhält die Fehlermeldung „Sie können dieses Thema nicht dauerhaft löschen, da es andere Beiträge gibt.“
  • Admin B löscht die kleinen Aktionsbeiträge „Anheften“ und „Schließen“.
  • Admin B versucht erneut, das Thema dauerhaft zu löschen – die Löschung ist erfolgreich.

  • Admin B kann jedoch nicht mehr auf die Liste /deleted-posts von Admin A zugreifen, mit der Fehlermeldung GET https://greedy.jammydodger.monster/posts/jammydodger/deleted?offset=0.

Admin A und Admin C können jedoch immer noch auf die Liste /deleted-posts von Admin A zugreifen. Könnten Sie kurzfristig, @VincentAlse, das sekundäre Admin-Konto verwenden, um auf die Liste /deleted-posts zuzugreifen und die anderen Beiträge zu finden, die Sie löschen möchten? Alternativ könnten Sie eine data-explorer-Abfrage verwenden, um sie zu identifizieren?

3 „Gefällt mir“

Hallo @JammyDodger

Danke für die Bestätigung. Ich habe gerade Admin C (mit beiden alten und neu erstellten Konten) ausprobiert. Es funktioniert bei mir nicht. Ich glaube, der Grund dafür ist, dass ich Beiträge für viele verschiedene Konten gelöscht habe und die Löschliste für die meisten von ihnen fehlerhaft ist.

Ich werde mir den Daten-Explorer ansehen. Kann ich damit gelöschte Beiträge abfragen?

2 „Gefällt mir“

Das ist bedauerlich. Wenn Sie Zugriff auf das Data Explorer Plugin haben, denke ich, dass etwas wie dieses die Liste /deleted/posts für einen bestimmten Benutzer nachbilden sollte (mit der post_id als Bonus):

-- [params]
-- user_id :user_id

SELECT p.created_at AS reltime$time,
       id AS post_id,
       id
FROM posts p
WHERE p.user_id = :user_id
AND p.deleted_at IS NOT NULL
ORDER BY p.created_at DESC
4 „Gefällt mir“

Lass es mich versuchen.

3 „Gefällt mir“

Hat das für Sie funktioniert, @VincentAlse? Ich denke, es sollte mehrere Möglichkeiten geben, die Beiträge zu finden, die Sie löschen möchten, falls diese Ihnen nicht die benötigte Liste angezeigt hat?

3 „Gefällt mir“

Eine dumme Frage. Was ist user_id? Ich glaube, meine user_id ist 1, basierend auf der .json-Seite.

Ich erhalte diese Meldung: ActiveRecord::PreparedStatementInvalid: missing value for :user_id in /*

@JammyDodger

1 „Gefällt mir“

Wenn ich mir diesen Screenshot ansehe, scheint es, als hätten Sie den Parameter oben geändert, was ihn tatsächlich daran hindert, zu funktionieren. Wenn Sie ihn als :user_id belassen, erhalten Sie beim Ausführen eine Auswahlbox, in die Sie einen Benutzernamen eingeben können. :+1:

Alternativ könnten Sie den Parameter weglassen und die Benutzer-ID, die Sie aus dem JSON erhalten haben, zur Zeile WHERE p.user_id = hinzufügen.

Macht das Sinn?

3 „Gefällt mir“

Es scheint, als ob Sie bereits Hilfe erhalten, aber wenn Sie darauf klicken, gelangen Sie zu /u/deleted-posts, was funktioniert.

1 „Gefällt mir“

Es funktioniert jetzt!

Ich dachte, ich müsste die user_id in den Code einfügen.

Vielen Dank @JammyDodger

4 „Gefällt mir“

Ich habe den von Ihnen gemeldeten Fehler mit diesem PR gestern behoben, der bereits zusammengeführt wurde und bereitgestellt werden kann, wenn Sie Ihre Discourse-Instanz aktualisieren:

Wir haben jedoch festgestellt, dass das endgültige Löschen von Themen verwaiste kleine Aktionsbeiträge in der Datenbank hinterlassen könnte. Dieser zweite Fehler wurde behoben mit:

Ich denke, jetzt sollte alles einwandfrei funktionieren. Bitte lassen Sie uns wissen, wenn Sie weitere Probleme haben.

6 „Gefällt mir“

Dieses Thema wurde nach 3 Tagen automatisch geschlossen. Neue Antworten sind nicht mehr möglich.