Seite 1 von 3

[3.3] sporadischer Fehler im error.log

Verfasst: 06.06.2023 21:18
von vfrblue
Hallo,
seit einiger Zeit habe ich sporadisch folgende Fehlermeldung im error.log:

Code: Alles auswählen

[06-Jun-2023 19:19:35 Europe/Berlin] PHP Fatal error:  Uncaught Error: Class "s9e_renderer_53335af683128a087f27874f0654acdbb6595c92" not found in /homepages/xxxxxxx/forum/vendor/s9e/text-formatter/src/Configurator/RendererGenerators/PHP.php:137
Stack trace:
#0 /homepages/xxxxxxx/forum/vendor/s9e/text-formatter/src/Configurator/Rendering.php(102): s9e\TextFormatter\Configurator\RendererGenerators\PHP->getRenderer()
#1 /homepages/xxxxxxx/forum/vendor/s9e/text-formatter/src/Configurator.php(243): s9e\TextFormatter\Configurator\Rendering->getRenderer()
#2 /homepages/xxxxxxx/forum/phpbb/textformatter/s9e/factory.php(397): s9e\TextFormatter\Configurator->finalize()
#3 /homepages/xxxxxxx/forum/phpbb/textformatter/s9e/renderer.php(97): phpbb\textformatter\s9e\factory->regenerate()
#4 [internal function]: phpbb\textformatter\s9e\renderer->__construct()
#5 /homepages/xxxxxxx/forum/vendor/symfony/dependency-injection/ContainerBuilder.php(1176): ReflectionClass->newInstanceArgs()
#6 /homepages/xxxxxxx/forum/vendor/symfony/dependency-injection/ContainerBuilder.php(634): Symfony\Component\DependencyInjection\ContainerBuilder->createService()
#7 /homepages/xxxxxxx/forum/vendor/symfony/dependency-injection/ContainerBuilder.php(616): Symfony\Component\DependencyInjection\ContainerBuilder->doGet()
#8 /homepages/xxxxxxx/forum/vendor/symfony/dependency-injection/ContainerBuilder.php(588): Symfony\Component\DependencyInjection\ContainerBuilder->doGet()
#9 /homepages/xxxxxxx/forum/includes/functions_content.php(584): Symfony\Component\DependencyInjection\ContainerBuilder->get()
#10 /homepages/xxxxxxx/forum/includes/functions_display.php(815): generate_text_for_display()
#11 /homepages/xxxxxxx/forum/viewtopic.php(707): generate_forum_nav()
#12 {main}
  thrown in /homepages/xxxxxxx/forum/vendor/s9e/text-formatter/src/Configurator/RendererGenerators/PHP.php on line 137
[06-Jun-2023 19:19:35 Europe/Berlin] PHP Fatal error:  Uncaught Error: Class "s9e_renderer_53335af683128a087f27874f0654acdbb6595c92" not found in /homepages/xxxxxxx/forum/vendor/s9e/text-formatter/src/Configurator/RendererGenerators/PHP.php:137
Stack trace:
#0 /homepages/xxxxxxx/forum/vendor/s9e/text-formatter/src/Configurator/Rendering.php(102): s9e\TextFormatter\Configurator\RendererGenerators\PHP->getRenderer()
#1 /homepages/xxxxxxx/forum/vendor/s9e/text-formatter/src/Configurator.php(243): s9e\TextFormatter\Configurator\Rendering->getRenderer()
#2 /homepages/xxxxxxx/forum/phpbb/textformatter/s9e/factory.php(397): s9e\TextFormatter\Configurator->finalize()
#3 /homepages/xxxxxxx/forum/phpbb/textformatter/s9e/renderer.php(97): phpbb\textformatter\s9e\factory->regenerate()
#4 [internal function]: phpbb\textformatter\s9e\renderer->__construct()
#5 /homepages/xxxxxxx/forum/vendor/symfony/dependency-injection/ContainerBuilder.php(1176): ReflectionClass->newInstanceArgs()
#6 /homepages/xxxxxxx/forum/vendor/symfony/dependency-injection/ContainerBuilder.php(634): Symfony\Component\DependencyInjection\ContainerBuilder->createService()
#7 /homepages/xxxxxxx/forum/vendor/symfony/dependency-injection/ContainerBuilder.php(616): Symfony\Component\DependencyInjection\ContainerBuilder->doGet()
#8 /homepages/xxxxxxx/forum/vendor/symfony/dependency-injection/ContainerBuilder.php(588): Symfony\Component\DependencyInjection\ContainerBuilder->doGet()
#9 /homepages/xxxxxxx/forum/includes/functions_content.php(584): Symfony\Component\DependencyInjection\ContainerBuilder->get()
#10 /homepages/xxxxxxx/forum/ext/phpbbde/tou/event/main.php(117): generate_text_for_display()
#11 /homepages/xxxxxxx/forum/vendor/symfony/event-dispatcher/EventDispatcher.php(214): phpbbde\tou\event\main->page_header()
#12 /homepages/xxxxxxx/forum/vendor/symfony/event-dispatcher/EventDispatcher.php(44): Symfony\Component\EventDispatcher\EventDispatcher->doDispatch()
#13 /homepages/xxxxxxx/forum/phpbb/event/dispatcher.php(62): Symfony\Component\EventDispatcher\EventDispatcher->dispatch()
#14 /homepages/xxxxxxx/forum/phpbb/event/dispatcher.php(46): phpbb\event\dispatcher->dispatch()
#15 /homepages/xxxxxxx/forum/includes/functions.php(3773): phpbb\event\dispatcher->trigger_event()
#16 /homepages/xxxxxxx/forum/includes/functions.php(2543): page_header()
#17 /homepages/xxxxxxx/forum/memberlist.php(82): login_box()
#18 {main}
  thrown in /homepages/xxxxxxx/forum/vendor/s9e/text-formatter/src/Configurator/RendererGenerators/PHP.php on line 137
  
Dieser Fehler tritt in unregelmäßigen Abständen auf. Von 1 - 2 mal in der Woche bis 1 mal in 2 Monaten.

Meine bescheidenen Kenntnisse reichen leider nicht aus, um den Fehler zu lokalisieren.

phpBB-Version ist 3.3.10
PHP ist 8.2.6, wobei der Fehler auch unter 8.1 auftritt

Re: [3.3] sporadischer Fehler im error.log

Verfasst: 07.06.2023 08:20
von chris1278
Hast du die ext Terms of use in Gebrauch.

Re: [3.3] sporadischer Fehler im error.log

Verfasst: 07.06.2023 13:07
von LukeWCS
Hallo Hermann

Auf den ersten Blick, sieht das nach einem Phantomfehler aus. Also eine Fehlermeldung die einen Fehler beschreibt der gar nicht existiert und eine ganz andere Ursache hat. Dass das nur sporadisch auftritt, macht die Fehlersuche nicht einfacher, weil dann eine gezielte Reproduzierbarkeit zum Glücksspiel verkommt.

Was ich bisher aus dem Log lese:
  • Der s9e TextFormatter ist ein von vielen Dritt-Komponenten bei phpBB. Der hat bei phpBB mehrere Aufgaben, unter anderem das parsen von Beiträgen und BBcode. Zum ersten Mal hatte ich bei der Ext "Mod Break" damit zu tun, zuletzt bei meinem "Disable Emojis". Der kommt sowohl beim Speichern eines Beitrags/PN als auch bei der Anzeige eines Beitrags/PN zum Einsatz.
  • Der Klassenname s9e_renderer_53335af683128a087f27874f0654acdbb6595c92 ist kompletter Nonsens. Das diese Klasse in der besagten Datei PHP.php nicht gefunden werden kann, ist sofort klar. :wink:
  • Ein weiteres Indiz für einen Phantomfehler ist die Klassifizierung "Uncaught Error".
  • Den Log Einträgen nach zu urteilen, tritt der Fehler bei der Anzeige eines Beitrags/PN auf.
Wenn die Ursache eine Ext ist, ist der Fehler auch nicht einfach zu finden, weil der Fehler ja sporadisch auftritt. Das heisst alle Exts zu deaktivieren und dann zu schauen, ob der Fehler "irgendwann" nochmal auftritt oder nicht, ist in dem Fall kein praktikabler Lösungsansatz und auch höchst unpräzise.

Um hier mal den absolut unliebsamen Faktor "sporadisch/zufällig" zu reduzieren bzw. am besten komplett zu eliminieren, wäre mein erster Ansatz das Error Log dem Access Log gegenüber zu stellen. Schau mal in deinem Access Log nach, welche URL zu exakt dem Zeitpunkt aufgerufen wurde, als ein solcher Fehler im Error Log protokolliert wurde. Dann wissen wir immerhin schon mal grob den Kontext, in dem dieser Fehler auftritt. Natürlich nicht nur bei einem Eintrag prüfen, sondern bei mehreren Einträgen. Im Idealfall ist jedes Mal dieselbe URL involviert.

@chris1278

Kommt dir dieser Fehler bei der Ext "Terms of use" bekannt vor oder wie?

Re: [3.3] sporadischer Fehler im error.log

Verfasst: 07.06.2023 16:24
von chris1278
LukeWCS hat geschrieben: 07.06.2023 13:07
@chris1278

Kommt dir dieser Fehler bei der Ext "Terms of use" bekannt vor oder wie?
Nein aber die ext ist da aufgelistet wenn ich's richtig sehe. Und wenn ich das richtig sehe müsste diese Extension auch diese generate_text() Funktion nutzen. Ob's damit zusammenhängt kann ich nicht sagen.

Ja aber die ist die einzigste Extension in der Auflistung ist wäre die Schlussfolgerung naheliegend dass es vielleicht etwas damit zu tun haben könnte.

Re: [3.3] sporadischer Fehler im error.log

Verfasst: 07.06.2023 19:28
von LukeWCS
chris1278 hat geschrieben: 07.06.2023 16:24 Nein aber die ext ist da aufgelistet wenn ich's richtig sehe.
Guter Punkt, hab ich übersehen. :oops:
Und wenn ich das richtig sehe müsste diese Extension auch diese generate_text() Funktion nutzen.
Ja, wobei das eine Standard Funktion ist, die von vielen Exts und phpBB selbst benutzt wird. Deshalb hatte ich nicht auf die aufrufende Datei geachtet.

Re: [3.3] sporadischer Fehler im error.log

Verfasst: 07.06.2023 19:37
von vfrblue
"Terms of use" ist installiert, dürfte aber den Fehler nicht verursachen. Dann müsste ja bei jeder Neu-Registrierung der Fehler auftauchen, was aber nicht der Fall ist.

In der "access.log" ist zu dieser Uhrzeit kein Log-Eintrag vorhanden. Kurz davor und kurz danach sind jeweils Bots geloggt.

Code: Alles auswählen

66.249.76.0 - - [06/Jun/2023:19:19:31 +0200] "GET /robots.txt HTTP/1.1" 200 326 forum.vfr-oc.de "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" "-"
212.4.190.0 - - [06/Jun/2023:19:19:36 +0200] "GET / HTTP/1.1" 200 12617 forum.vfr-oc.de "-" "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Mobile Safari/537.36" "-"
@LukeWCS:
Es scheint so, wie du geschrieben hast, dass es ein "Phantomfehler" ist.

Re: [3.3] sporadischer Fehler im error.log

Verfasst: 07.06.2023 20:11
von chris1278
Mit Terms of Use war ja auch nur ne Vermutung.

Re: [3.3] sporadischer Fehler im error.log

Verfasst: 07.06.2023 20:12
von Dr.Death
Sieht so aus, als wenn jemand (als Gast oder Bot) versucht die memberlist.php aufzurufen ohne angemeldet zu sein:

#17 /homepages/xxxxxxx/forum/memberlist.php(82): login_box()
und dann auf die TOU Extension prallt....
#10 /homepages/xxxxxxx/forum/ext/phpbbde/tou/event/main.php(117): generate_text_for_display()

Re: [3.3] sporadischer Fehler im error.log

Verfasst: 07.06.2023 20:19
von LukeWCS
vfrblue hat geschrieben: 07.06.2023 19:37 "Terms of use" ist installiert, dürfte aber den Fehler nicht verursachen.
Ich glaube aktuell nicht, dass das von einer Ext verursacht wird.

Ich habe sowas noch nie gesehen. Wenn ein Klassenname derart kaputt angegeben wird, dann hätte ich eher eine tieferliegende Ursache im Verdacht. Eventuell ein PHP Problem oder ein anderes Server Problem. Das sind aber nur wilde Vermutungen und stützen sich auf keinerlei Fakten.
In der "access.log" ist zu dieser Uhrzeit kein Log-Eintrag vorhanden.
Der Eintrag von 19:19:31 fällt weg, der kann es nicht sein. Sehr wohl kann es aber der zweite Eintrag sein, also 19:19:36, weil Logs ja nicht alle perfekt zeitgleich geschrieben werden und wenn wir gerade 19:19:35.999 haben als das Event auftrat, dann wird das evtl. schon als 19:19:36 geschrieben. Das fällt quasi unter Messtoleranz und ist keine Millisekunden-genaue Raketenwissenschaft. :wink:

Demnach hast du im Forum selbst keine derartigen Fehlermeldungen bekommen? Oder deine Benutzer? Wenn nicht, dann wäre das schon mal ein Indiz dafür, dass diese Fehler nur bei Bot-Zugriffen passieren. Hast du aktuell keine weiteren Error Log Einträge in der Richtung, für die du auch noch passende Access Log Einträge hast? Nur diese 2 sind für sowas bisserl zu mager, evtl. mal weiter beobachten.
Es scheint so, wie du geschrieben hast, dass es ein "Phantomfehler" ist.
Ja, wobei auch ein Phantomfehler ja trotzdem immer eine Ursache hat. Es werden ja nicht grundlos irgendwelche Fehler protokolliert. Aber der Punkt ist, wenn du selbst oder deine Benutzer keine Fehler im Error Log produzieren, während das Forum genutzt wird, dann sind von diesem Problem nur Bots betroffen. Darum mal weiter beobachten um zu sehen, ob sich das bestätigt, das dieser seltsame Fehler nur auftritt, wenn Bots im Spiel sind. Einfach nach dem Stil wie jetzt vielleicht in einer separaten lokalen Datei sowohl Error Log Einträge als auch die dazu passenden Access Log Einträge sammeln.

edit: Ich war noch am tippen, als Stefans Beitrag kam.

@Stefan

Seltsam ist halt der "defekte" Klassenname, das ist das, was mich am meisten irritiert.

Re: [3.3] sporadischer Fehler im error.log

Verfasst: 07.06.2023 21:17
von IMC
Ich hatte mal ein ähnliches Phänomen. Allerdings auf meiner Website, nicht bei phpBB.
Es wurden Fehlermeldungen geloggt die eigentlich nie hätten erscheinen können. Es wurde versucht Schadcode einzuschleusen.