Umstellung auf PHP 8, Fataler Fehler bei "Recent Topics"

Du hast Probleme beim Installieren oder bei der Benutzung einer Extension? In diesem Forum bist du richtig.
Forumsregeln
Bei Fragen zu einer bestimmten Extension sind Extension-Name und die Downloadquelle der Extension erforderlich. Letztere in Form der URL zum Download.
Benutzeravatar
Tommy Herrmann
Mitglied
Beiträge: 133
Registriert: 06.12.2020 11:24
Kontaktdaten:

Re: Umstellung auf PHP 8, Fataler Fehler bei "Board Announcements"

Beitrag von Tommy Herrmann »

Ja danke Dir,

ich verstehe davon leider nicht genug und daher habe ich das ja auch alles hier gepostet.

Ich hatte anfangs - wie auch vom Autor beschrieben - einfach die Dateien der neuesten v2.2.15 über die bei mir vorhandenen Dateien der v2.2.13 drüber gebügelt. Könnte das was mit dem doppelten Eintrag zu tun haben?

Hier habe ich gerade jemanden mit genau der gleichen Fehlermeldung gefunden:

https://www.phpbb.com/customise/db/exte ... 81#p841981


Mir ist auch ein Rätsel warum es dann plötzlich ging - ohne das ich noch irgend etwas unternommen hätte.

Ich hatte also die Erweiterung "Recent Topics" bereits deaktiviert und da ich ja anschließend auch alles nochmals ganz neu installiert hatte, also nur v2.2.15, stand da nur "Aktivieren" aber nichts von "Arbeitsdaten löschen".

Als ich dann erneut - eigentlich für etwas ganz anderes ins ACP ging - da stand dann einige Stunden später plötzlich "Arbeitsdaten löschen" neben der deaktivierten Erweiterung. Das hatte mich irritiert und ich habe dann die Erweiterung einfach nochmals aktiviert und alles funzte mit einem Mal hervorragend.

... ich wollte dieses Phänomen nur nochmals hier beschreiben, denn ich kann mit diesem Verhalten überhaupt nichts anfangen.

Am Ende war ich eigentlich damit ziemlich überfordert, denn bei der ersten Fehlermeldung hatte ich auch keinen Zugang mehr zur Anwendung - konnte also nichts mehr machen. Ich musste dann, via FTP, diese Erweiterung zunächst am Server löschen.

Ich will auch nicht ausschließen, dass ich irgendeinen Fehler gemacht habe - dennoch - eigentlich müsste die Software dann solche Benutzerfehler so abfangen können, dass einem zumindest der Zugang erhalten bleibt.

Bei mir geht ja nun (zum Glück) alles wieder - und das in PHP 8.0.25 - ich wollte nur versuchen anderen diese doch recht schlimme Erfahrung zu ersparen.
Benutzeravatar
Mike-on-Tour
Supporter
Supporter
Beiträge: 1086
Registriert: 13.01.2020 21:09
Kontaktdaten:

Re: Umstellung auf PHP 8, Fataler Fehler bei "Board Announcements"

Beitrag von Mike-on-Tour »

Tommy Herrmann hat geschrieben: 08.11.2022 04:37 Ich hatte anfangs - wie auch vom Autor beschrieben - einfach die Dateien der neuesten v2.2.15 über die bei mir vorhandenen Dateien der v2.2.13 drüber gebügelt.
Am sichersten ist es, die alten Dateien komplett zu löschen (natürlich mit Ausnahme derjenigen, die evtl. im Laufe der Nutzung entstanden sind wie z.B. Images) und dann erst die neuen Dateien hochzuladen. So wird vermieden, dass ggf. nicht mehr verwendete Dateien irgendwelche Störungen verursachen.
Das ist zumindest meine Empfehlung für die Updates meiner Erweiterungen.
Benutzeravatar
Tommy Herrmann
Mitglied
Beiträge: 133
Registriert: 06.12.2020 11:24
Kontaktdaten:

Re: Umstellung auf PHP 8, Fataler Fehler bei "Board Announcements"

Beitrag von Tommy Herrmann »

Ja - danke Dir.

Dennoch - einen Bug gibt es da auf jeden Fall bei der Umstellung auf PHP 8, der auch schon von einigen identifiziert wurde und der auch leicht nachstellbar ist:

https://github.com/Sajaki/RecentTopics/ ... 1304823251

... da nützt dann eben auch eine komplett neue Installation gar nichts.
Benutzeravatar
LukeWCS
Supporter
Supporter
Beiträge: 2176
Registriert: 15.12.2014 10:19
Kontaktdaten:

Re: Umstellung auf PHP 8, Fataler Fehler bei "Board Announcements"

Beitrag von LukeWCS »

Tommy Herrmann hat geschrieben: 08.11.2022 04:37 ich verstehe davon leider nicht genug und daher habe ich das ja auch alles hier gepostet.
Deswegen hab ich dir beschrieben, was da vermutlich passiert ist.
LukeWCS hat geschrieben: 07.11.2022 17:47 Dem Fehlerprotokoll nach, hat phpBB aus irgendeinem Grund versucht die Ext erneut zu installieren (in der DB zu registrieren). Aber was zu diesem Phänomen führen könnte, ist mir schleierhaft. Könnte ich den Fehler bei mir reproduzieren, könnte ich auch die Ursache finden.
Ich hatte anfangs - wie auch vom Autor beschrieben - einfach die Dateien der neuesten v2.2.15 über die bei mir vorhandenen Dateien der v2.2.13 drüber gebügelt. Könnte das was mit dem doppelten Eintrag zu tun haben?
Mit "drüber gebügelt" meinst du die vorhandenen Dateien mit den neuen überschreiben? Falls ja: das ist generell keine gute Idee. Bevor eine Ext aktualisiert wird, muss diese - nach der Deaktivierung - komplett vom Webserver entfernt werden. Es sei denn bei der Ext gibt es irgendwelche "Arbeitsdateien" die im Betrieb entstehen oder vom Benutzer angelegt werden müssen. Das ist aber nicht die Regel und sowas sollten Ext Coder auch vermeiden.
Mir ist auch ein Rätsel warum es dann plötzlich ging - ohne das ich noch irgend etwas unternommen hätte.
Ja, das Problem ist jetzt, dass es nicht mehr nachvollziehbar ist, was du wann wie genau gemacht hast, als es zu dieser "duplicate" Meldung kam. Das wirst du jetzt vermutlich selbst nicht mehr nachvollziehen können. Und selbst dann muss dieser Fehler auch reproduzierbar sein.
Ich hatte also die Erweiterung "Recent Topics" bereits deaktiviert und da ich ja anschließend auch alles nochmals ganz neu installiert hatte, also nur v2.2.15, stand da nur "Aktivieren" aber nichts von "Arbeitsdaten löschen".
Die Funktion "Arbeitsdaten löschen" gibt es nur bei Exts die deaktiviert wurden. Also Exts die installiert sind. Wenn bei einer deaktivierten Ext diese Funktion fehlt, wurde sie nicht installiert.
Am Ende war ich eigentlich damit ziemlich überfordert, denn bei der ersten Fehlermeldung hatte ich auch keinen Zugang mehr zur Anwendung - konnte also nichts mehr machen. Ich musste dann, via FTP, diese Erweiterung zunächst am Server löschen.
Eine Ext darf nur per FTP gelöscht werden, wenn sie vorher entweder sauber deaktiviert wurde (im ExtMgr) oder aber im Notfall per DB Eingriff und anschliessenden Leeren des Caches. Löscht man eine Ext - die im System noch als installiert registriert und aktiviert ist - dagegen einfach per FTP, dann schafft man nur noch mehr Probleme. Je nach Funktionsweise einer Ext sogar erhebliche Probleme die dazu führen können, dass das Frontend gar nicht mehr ansprechbar ist.
Tommy Herrmann hat geschrieben: 08.11.2022 07:15 Dennoch - einen Bug gibt es da auf jeden Fall bei der Umstellung auf PHP 8, der auch schon von einigen identifiziert wurde und der auch leicht nachstellbar ist:
Ja, dieser Fehler wurde ja erkannt und auch schon die Lösung dafür genannt. Der Fehler war übrigens auch schon bei 2.1.13 vorhanden. Er hat jedoch erst Auswirkungen ab PHP 8. Die letzte validierte Version ist 2.1.13. Die Versionen 2.1.14 und 2.1.15 sind bisher nicht positiv validiert worden, oder aber gar nicht zur Validierung eingereicht worden. Diese Versionen wurden/werden von einer externen Seite zum DL angeboten und nicht im Rahmen der CDB Validierung. Die Codebase der Version 2.1.15 entspricht so nebenbei an mehreren Stellen nicht den phpBB Coding Guidelines, wie ich festgestellt habe. Das aber nur am Rande, mit den genannten Problemen hat das nichts zu tun.

Als 2.1.13 validiert wurde, war PHP 8 noch nicht offiziell (als Release) verfügbar. Und selbst wenn es verfügbar gewesen wäre; die Autoren brauchen auch erst Zeit sich mit einer neuen PHP Version auseinander zu setzen. Manchmal ist der Wechsel der PHP Version relativ schmerzfrei, sowohl für Admins als auch für die Entwickler. Aber manchmal, so wie jetzt bei PHP 8, tauchen manche Probleme erst so nach und nach auf. PHP 8 hat massive Änderungen erfahren.
Möge das Backup mit dir sein. Immer.

Erweiterungen - Infos zur artgerechten Haltung
phpBB Ext Check - Analysesystem für phpBB Erweiterungen (Entwickler Werkzeug)
Benutzeravatar
Tommy Herrmann
Mitglied
Beiträge: 133
Registriert: 06.12.2020 11:24
Kontaktdaten:

Re: Umstellung auf PHP 8, Fataler Fehler bei "Recent Topics"

Beitrag von Tommy Herrmann »

danke Dir, Du hattest aber gesehen, dass da jemand anderem genau das Gleiche passiert ist und er genau meine Fehlermeldung auch bekam:

https://www.phpbb.com/customise/db/exte ... 81#p841981
Benutzeravatar
LukeWCS
Supporter
Supporter
Beiträge: 2176
Registriert: 15.12.2014 10:19
Kontaktdaten:

Re: Umstellung auf PHP 8, Fataler Fehler bei "Recent Topics"

Beitrag von LukeWCS »

Tommy Herrmann hat geschrieben: 08.11.2022 13:38 danke Dir, Du hattest aber gesehen, dass da jemand anderem genau das Gleiche passiert ist und er genau meine Fehlermeldung auch bekam:

https://www.phpbb.com/customise/db/exte ... 81#p841981
Ja, hab ich gesehen. Ändert aber nichts an dem was ich schrieb. :wink:

Ich kenne die exakten Umstände nicht, die zu dieser Fehlermeldung führten. Bei manchen Fehlermeldungen genügt die Meldung alleine nicht, um die Ursache zu finden. Dann braucht man eine präzise Liste mit den exakten Schritten die zuvor durchgeführt wurden. In dem von dir verlinkten Thema erwähnt zum Beispiel auch keiner, welche PHP Version er nutzt. Die einzige Angabe dort ist: bei der Aktivierung der Ext. Das wars, mehr ist nicht. Was wurde davor alles gemacht? Wie wurde die Ext aktualisiert? Welches Exts sind da noch im Einsatz? Und so weiter.
Möge das Backup mit dir sein. Immer.

Erweiterungen - Infos zur artgerechten Haltung
phpBB Ext Check - Analysesystem für phpBB Erweiterungen (Entwickler Werkzeug)
Benutzeravatar
IMC
Mitglied
Beiträge: 547
Registriert: 25.11.2018 20:32
Wohnort: Lüneburg
Kontaktdaten:

Re: Umstellung auf PHP 8, Fataler Fehler bei "Recent Topics"

Beitrag von IMC »

Ich habe jetzt einen weiteren Fehler entdeckt.

Wenn die Einstellung Alle Seiten anzeigen: ausgewählt ist und kein Benutzer angemeldet ist, ist die Auswahl der Seiten fehlerhaft.

Zur Beseitigung des Fehlers suche in der recenttopics.php (Zeile 305)

Code: Alles auswählen

			$sql_array = $this->get_allowed_topics_sql($this->excluded_topics, $min_topic_level);
			$count_sql_array = $sql_array;
			$count_sql_array['SELECT'] = 'COUNT(t.topic_id) as topic_count';
			unset($count_sql_array['ORDER_BY']);
			$sql = $this->db->sql_build_query('SELECT', $count_sql_array);
und ersetze mit

Code: Alles auswählen

			$sql_array = $this->get_allowed_topics_sql($this->excluded_topics, $min_topic_level);
			$count_sql_array = $sql_array;
			$count_sql_array['SELECT'] = 'COUNT(t.topic_id) as topic_count';
			unset($count_sql_array['ORDER_BY']);
			unset($count_sql_array['WHERE']);
			$sql = $this->db->sql_build_query('SELECT', $count_sql_array);
Gruß, Thorsten
Benutzeravatar
IMC
Mitglied
Beiträge: 547
Registriert: 25.11.2018 20:32
Wohnort: Lüneburg
Kontaktdaten:

Re: Umstellung auf PHP 8, Fataler Fehler bei "Recent Topics"

Beitrag von IMC »

Die Fehlerbeseitigung in meinen vorherigen Post ist leider nicht die beste. :(

Besser ist es den Funktionsaufruf in der recenttopics.php aus Zeile 323

Code: Alles auswählen

		$this->getforumlist();
in Zeile 295 zu Kopieren

Code: Alles auswählen

		$this->getforumlist();

		//limit number of pages to be shown
		// compute as product of topics per page and max number of pages.
		$this->total_topics_limit = 0;
		if ((int) $this->config['rt_page_number'] == 0)
Gruß, Thorsten
Benutzeravatar
LukeWCS
Supporter
Supporter
Beiträge: 2176
Registriert: 15.12.2014 10:19
Kontaktdaten:

Re: Umstellung auf PHP 8, Fataler Fehler bei "Recent Topics"

Beitrag von LukeWCS »

Ach Thorsten, so am Rande: Ich hatte ja geschrieben, dass die Ext unter neuer Flagge läuft. Äh ja, "neu" ist hier schon paar Jahre, wie ich heute in seinem Repo gesehen habe. :D Das erste Release von Sajaki ist über 4 Jahre her. Hab irgendwie nicht mitbekommen, dass das nicht mehr von PayBas betreut wird.
Möge das Backup mit dir sein. Immer.

Erweiterungen - Infos zur artgerechten Haltung
phpBB Ext Check - Analysesystem für phpBB Erweiterungen (Entwickler Werkzeug)
Benutzeravatar
IMC
Mitglied
Beiträge: 547
Registriert: 25.11.2018 20:32
Wohnort: Lüneburg
Kontaktdaten:

Re: Umstellung auf PHP 8, Fataler Fehler bei "Recent Topics"

Beitrag von IMC »

Hi Luke, da die Extension nicht mehr so richtig gepflegt wird habe ich für mich einen Fork gemacht um dort die mir bekannten Fehler zu fixen. Ein weiterer Fehler ist in der ucp_listener.php. Dort gab es ein Problem mit der Übergabe der Benutzervoreinstellungen bei neu Neuregistrierung von Benutzern.
Gruß, Thorsten
Antworten

Zurück zu „Extension Support“