[5.2 RC 2] Reaktionssystem führt zu Fehler

  • Gestern meldete sich ein Nutzer bei mir, dass er eine Fahlermeldung beim Reaktionssystem bekommt. Aufgefallen ist mir das bei: Forum, Kalender und Blog. Beim Blog und Kalender kann man es garnicht nutzen, beim Forum taucht es nach mehrmaligen wechseln einer Reaktion innerhalb eines Posting auf. Beim Arikelsystem des WSC und der Galerie funktioniert es so wie es soll. Zwar taucht der Fehler nicht direkt im WSC auf, sondern in den Apps, aber da das Reaktionssystem ein WSC-Bestandteil ist und es über ein paar Apps geht , poste ich es hier.


    Fehlermeldung Blog:


    Fehlermeldung Forum:

    Fehlermeldung Kalender:

  • Der Fehler vom Forum dürfte übrigens eher was mit einem Plugin zu tun haben.

    Danke für den Tipp. Der war Gold wert. Habe das "Mehrere Ranggrafiken" aus dem Plugin-Store instaliert. Das ist noch nicht angepasst auf die 5.2 und führt im Forum zu dem Fehler. Also das Forum geht jetzt wieder.



    Kann es an deiner php- Version liegen? Auf der Vorstellungsseite der RC2 Version steht nur was von php- Version 7.4, nicht 7. 4.1

    Ich habe es mal getestet und habe auf php 7.3.13 gedowngradet. Sowohl im Blog, als auch im Kalender ist es immer noch nicht zu benutzen.


    Zwischen php 7.4 und 7.4.1 dürfte es eigentlich auch keine großen Unterschiede geben. Wenn ich mich recht entsinne sind 7.4.1 nur Bugfixes und Sicherheitsupdates.


    Aktueller Logauszug vom Blogfehler:

  • Hallo,


    wenn du in der Datei wcf/lib/system/reaction/ReactionHandler.class.php mal nach Zeile 382 folgenden Code einfügst, bekommst du einen korrekten Fehler angezeigt: throw $e;.


    Sprich, der Catch-Block muss dann so aussehen:


    PHP
    catch (DatabaseQueryException $e) {
    WCF::getDB()->rollBackTransaction();
    throw $e;
    }


    Kannst du mir die explizite Fehlermeldung dann geben?


    Grüße


    Josh

  • Mal abgesehen von dem Problem. Warum nutzt man eine Test-/Entwicklungsversion, die nicht für den produktiven Einsatz gedacht ist?

    Unteranderem weil ich nicht doppelt Zahlen will und mir die 5.2 ein paar Sachen bietet, die die 3.1 mir nicht bietet.



    Kannst du mir die explizite Fehlermeldung dann geben?

    Habe es jetzt mal eingefügt und bekomme im Log jetzt dies. Hoffe das ist jetzt das richtige:


    Edit: Und hier noch mal für den Kalender:

  • Nochmal eine Rückmeldung. Ich habe das Like-System jetzt mal ausgiebiger getestet. Auch im Forum tretet es noch auf. Allerdings nicht bei allen Beiträgen.


  • Anmerkung: Die 2. Fehlermeldung im Startbeitrag hat nichts mit den Reaktionen zu tun, hier liegt ein Fehler im Event-Listener eines Plugins vor.

    UpdateUserMultirankListener.class.php


    Bei den Fehlern bzgl. der Reaktionen ist auffällig, dass diese ausnahmslos als Folge des Aufrufs durch den WSCConnectListener.class.php auftreten. Wenn ich die Extra-Informationen der Exceptions richtig deute, sind zum Zeitpunkt der Abfrage keine Autoren mit der Notification verknüpft, das kann darauf hinweisen, dass die Benachrichtigung viel zu früh abgefragt wird und dadurch noch nicht vollständig besteht. Benachrichtigungen werden im ersten Schritt angelegt und dann erst mit dem Autor ("Verursacher") verknüpft, so dass für einen sehr kurzen Zeitraum die Benachrichtigungen über keinen Autor verfügen.

  • Falls es tatsächlich an WSC-Connect liegen sollte: Das Plugin wurde auch noch nicht im 5.2 getestet.

  • Ich habe jetzt mal WSC-Connect deinstaliert. Jetzt funktioniert das Reaktionssystem wie es soll.


    Christopher Walz Da scheint es wohl eine inkompaktiblität zwischen dem Reaktions-System und WSC-Connect zu geben. Bisher lief WSC-Connect, ohne das mir oder anderen Nutzern Fehler aufgefallen sind. Dies dürfte dann wohl der erste Fehler im Zusammenspiel mit der 5.2 sein.

  • Das Plugin horcht auf fireEvent@wcf\system\user\notification\UserNotificationHandler und sollte an dieser Stelle bereits ein vollständiges Event vorfinden. Aber aus irgendwelchen Gründen liefert getAuthors() scheinbar keine Daten zurück, ich werde mal schauen, woran das liegt.


    Es ist aber insgesamt etwas unglücklich, denn die Notifications stehen zu diesem Zeitpunkt noch gar nicht endgültig fest. Beispielsweise wird keine Notification erzeugt, wenn der Zielbenutzer den auslösenden Benutzer ignoriert. Das wird aber in deinem Event-Listener nicht berücksichtigt, weil die Filterung der recipientIDs erst nach dem Event erfolgt. Stacking wird zwar auch nicht berücksichtigt, kann aber durchaus so gewollt sein und sehe ich somit nicht als ein Problem an.


    Edit: In jedem Fall werden wir dafür sorgen, dass dieser Fehler nicht mehr auftritt, unabhängig davon, was das Plugin macht.

  • Es ist aber insgesamt etwas unglücklich, denn die Notifications stehen zu diesem Zeitpunkt noch gar nicht endgültig fest. Beispielsweise wird keine Notification erzeugt, wenn der Zielbenutzer den auslösenden Benutzer ignoriert. Das wird aber in deinem Event-Listener nicht berücksichtigt, weil die Filterung der recipientIDs erst nach dem Event erfolgt.

    Ist mir nie aufgefallen. Könnte man den EL nicht nach https://github.com/WoltLab/WCF…ionHandler.class.php#L227 verschieben?

  • War die Erwähnung ein Versehen oder bei welchem meiner Plugin siehst du Handlungsbedarf?