[Frage] [Frage] Typo3 7 / "Oops, an error occurred" wird gecached ... TYPO3-Version: 7.6.15

  • Eiknarf Eiknarf
    T3PO
    0 x
    9 Beiträge
    0 Hilfreiche Beiträge
    10. 02. 2017, 13:53

    Salut,

    Ich knabber schon länger an einem hartnäckigen Problem und bekomm es einfach nicht auf Palette.

    Ich habe eine Erweiterung plus Plugin geschrieben, die Liste und Detail auf einer Seite darstellt ... ziemlich Basic, funktioniert prima.

    Alle paar Tage kommt es allerdings vor, dass statt der Listen Ansicht "Oops, an error occurred! Code:XXX" erscheint, solange bis der Cache geleert wird.
    Ich habe nachgeforscht und konnte das Problem auf fehlerhafte URLs zurückführen, die regelmäßig durch einen Bot aufgerufen werden. In diesen URLs wird ein Controller klein statt groß geschrieben, daraufhin eine "The controller XXX is not allowed by this plugin" Exception geschmissen. Dummerweise wird dies bei leerem Cache gecached und beim nächsten Aufruf statt der Liste "Oops, an error occurred! Code:XXX" dargestellt. Blöd.

    Eigentlich sollte eine Exception doch gar nicht gecached werden oder?

    Hat jemand eine Idee, wie sich das bewerkstelligen lassen kann? Ich habe sämtliche Konfigurationen durchgetestet und bekommm es einfach nicht hin.

    Danke

    F

  • Hilfreichster Beitrag

  • Julian.Hofmann Julian.Ho...
    Flash Gordon
    1 x
    2845 Beiträge
    105 Hilfreiche Beiträge
    21. 02. 2017, 11:19 - Hilfreichster Beitrag

    Hängt die Exception wirklich im Inhalts-Cache? D.h. der Error-Code beginnt mit veraltetem Datum?
    Oder hängt die falsche URL im realURL-Cache? Bei letzterem wäre ja nicht die Exxception gecacht, sondern "nur" das reproduzierbare Hervorrufen der Exception.

    Ideen für nen Workaround:

    • Rewrite der URL(s) basteln, der Controllernamen korrekt geschrieben an TYPO3 reicht?
    • Wenn es nur ein Bot ist: den aussperren?


  • 1
  • Julian.Hofmann Julian.Ho...
    Flash Gordon
    1 x
    2845 Beiträge
    105 Hilfreiche Beiträge
    21. 02. 2017, 11:19

    Hängt die Exception wirklich im Inhalts-Cache? D.h. der Error-Code beginnt mit veraltetem Datum?
    Oder hängt die falsche URL im realURL-Cache? Bei letzterem wäre ja nicht die Exxception gecacht, sondern "nur" das reproduzierbare Hervorrufen der Exception.

    Ideen für nen Workaround:

    • Rewrite der URL(s) basteln, der Controllernamen korrekt geschrieben an TYPO3 reicht?
    • Wenn es nur ein Bot ist: den aussperren?

  • Eiknarf Eiknarf
    T3PO
    0 x
    9 Beiträge
    0 Hilfreiche Beiträge
    01. 03. 2017, 10:56

    Danke dir für deine Antwort.

    Ja, "Ooops ..." lag im Cache, mit config.no_cache = 1 passierte es nicht.

    Ich habe Gestern noch mal genauer nachgeschaut und eine Lösung gefunden.

    Exceptions wurden in 2 Fällen geworfen:

    1. Unbekannter Controller / The controller XXX is not allowed by this plugin:
    Konnte ich mit callDefaultActionIfActionCantBeResolved im TS abfangen (anders als der Name vermuten lässt funktioniert das auch bei unbekanntem Controller)

    2. Unbekannte uid (nicht mehr vorhandene Artikel) / The identity property YYY is no UID:
    Konnte ich über processRequest im Controller lösen und stattdessen eine Fehlerseite ausgeben

    Warum die Exception aber überhaupt gecached wurde ist mir immer noch ein Rätsel.

  • 1