[Frage] Cache-Problem in Fluid/Extbase (empty objects) [Gelöst]

  • liesmar liesmar
    T3PO
    0 x
    7 Beiträge
    0 Hilfreiche Beiträge
    01. 05. 2014, 22:47

    Liebe Community!

    Seit dem Upgrade von Typo3 4.6 auf 6.1.4 verhält sich unsere Extension (Wochenplanverwaltung) etwas merkwürdig. Anhand der aktuellen Woche und Jahr wird der jeweilige Wochenplan aus dem Repository aufgerufen. Das funktioniert auch wunderbar, doch alle paar Tage hat das übergebene Objekt keine Werte (f:debug zeigt die korrekte UID und PID an, die restlichen Felder sind allerdings leer, obwohl das gleiche Objekt im Backend mit allen Werten vollständig angezeigt wird.)

    Leider konnten wir noch nicht ausfindig machen, welches Ereignis diesen Zustand verursucht. Einzige Abhilfe ist derzeit, alle Caches im Backend zu löschen. Danach funktioniert die Extension wieder für einige Tage. Auch die Konfiguration von no_cache=1 löst das Problem leider nicht.

    Die Controller-Action:
    [code]public function showAction($plan = null) {
    if(isset($plan)){
    $this->view->assign('plan', $plan);
    }else{
    $kw = intval(date('W')) + intval($this->settings['weekShift']);

    $plan = $this->planRepository->planKw($kw, intval(date('Y')), $this->settings['building']);
    $this->view->assign('plan', $plan);
    }
    }
    [/code]

    Ich hoffe, ihr könnt mir helfen!
    Marlies

  • frederic.gaus frederic....
    TYPO3-Anwärter
    1 x
    4 Beiträge
    1 Hilfreiche Beiträge
    14. 10. 2014, 14:28 - Lösung

    Hallo zusammen,

    der Fehler trat bei uns auch auf. Danke für den entscheidenden Hinweis auf die cf_extbase_datamapfactory_datamap. Diese Cache-Tabelle wurde in unserem Fall falsch aufgebaut, falls auf ein Extbase-Repository zugegriffen wurde bzw. ein Extbase-Model geladen oder geschrieben wurde, und das TCA nicht korrekt geladen ist. In unserem Fall war das innerhalb einer eID-Funktionalität der Fall.

    Im Prinzip handelt es sich um einen TYPO3-Core Bug. Die Cache-Tabelle darf nicht befüllt werden, falls das TCA nicht (komplett) geladen wurde. Vor dem Füllen der Tabelle muss auf jedem Fall ein EidUtility::initTCA (); aufgerufen sein.

    Abhilfe hilft es ggf, diesen Aufruf innerhalb der eigenen Extension zu platzieren.


  • aemka aemka
    Jedi-Ratsmitglied
    0 x
    562 Beiträge
    9 Hilfreiche Beiträge
    02. 05. 2014, 10:37

    Date doch erst mal auf 6.1.latest up, um das als Fehlerquelle auszuschließen.

    http://www.aemka.de/

  • liesmar liesmar
    T3PO
    0 x
    7 Beiträge
    0 Hilfreiche Beiträge
    02. 05. 2014, 21:42

    Hallo!

    Vielen Dank für die schnelle Antwort. Ich habe ein Backup auf 6.2.1 durchgeführt. Ob das Problem damit gelöst ist, kann ich leider erst in ein paar Tagen beantworten, da der Fehler nicht gezielt rekonstruiert werden kann.

  • Winddancer Winddance...
    Jedi-Meister
    0 x
    503 Beiträge
    0 Hilfreiche Beiträge
    05. 05. 2014, 17:22

    Hallo,

    ich fahre eine 6.1.8 und habe mit einer Extbase Extension genau das gleiche Fehlverhalten.
    Die Ergebnismengen scheinen zu stimmen, genau wie die PID, aber die Ergebnisdetails sind leer.

    Ich kann den Fehler auch leider nicht nachstellen.

    Ist das mit 6.2 jetzt noch mal aufgetreten?

  • liesmar liesmar
    T3PO
    0 x
    7 Beiträge
    0 Hilfreiche Beiträge
    05. 05. 2014, 17:55

    Hallo!

    Die Extension läuft bis jetzt fehlerfrei. Das Problem trat bei uns vor dem Upgrade mindestens alle 3 Tage (manchmal auch mehrmals am Tag) auf - die Chancen stehen also gut, dass das Upgrade wirklich geholfen hat :)

  • Winddancer Winddance...
    Jedi-Meister
    0 x
    503 Beiträge
    0 Hilfreiche Beiträge
    06. 05. 2014, 10:38

    Danke Dir für die Info. Dann werde ich jetzt wohl oder übel auch mal auf 6.2 upgraden...

  • Winddancer Winddance...
    Jedi-Meister
    0 x
    503 Beiträge
    0 Hilfreiche Beiträge
    07. 05. 2014, 10:06

    Hallo,

    habe jetzt auf die 6.2.1 geupgradet. Der spezifische Fehler mit den leeren Ergebnissen ist seitdem nicht mehr aufgetreten. Aufgrund der Frequenz der Seite, ist das bei uns täglich bis mehrmals täglich aufgetreten.

    Dafür ist aber ein anderes Problem aufgetreten und zwar dieser Bug hier:
    http://wiki.typo3.org/Exception/CMS/1382687163
    "Supplied file object type TYPO3\CMS\Core\Resource\Folder must be File or FileReference."

    Nun lag bei uns die Vermutung nahe, dass dieser Fehler evtl. auch schon in 6.1 allerdings ohne die Fehlermeldung aufgetreten ist.

    Nach einiger Suche in den Fluid Templates der Seite ist mir ein alter <f:comment> aufgefallen.
    Dort hatte ich eine f:image Aufruf stehen, den ich durch einen anderen f:image Aufruf, aber mit der gleichen Ressource, ersetzt habe. Nun ist es zwar so, dass f:comment nicht im Frontend gerendert wird, aber trotzdem ausgeführt wird. Das war mir bis dato nicht bekannt.

    Meine Befürchtung ist nun also, dass Extbase versucht hat das nächste Image zu rendern, während der alte Aufruf noch dabei war und das den Fehler erzeugt hat.

    Das sind jetzt natürlich alles wilde Mutmaßungen, aber das ist das einzige, was mir momentan halbwegs logisch erscheint.

    Habt ihr zufällig auch noch irgendwelche f:comments im Fluid Template?

  • Winddancer Winddance...
    Jedi-Meister
    0 x
    503 Beiträge
    0 Hilfreiche Beiträge
    07. 05. 2014, 11:07

    wurde leider gerade schon widerlegt. :/

  • liesmar liesmar
    T3PO
    0 x
    7 Beiträge
    0 Hilfreiche Beiträge
    21. 05. 2014, 00:53

    In der Zwischenzeit hat sich leider herausgestellt, dass das Cache-Problem auch unter 6.2.1 auftritt - wenn auch deutlich seltener. Das auslösende Ereignis konnte ich nach wie vor nicht ausfindig machen. Unter 6.2.1. ist es zudem nicht ausreichend, den Frontend- und General-Cache zu leeren, um den Fehler zu beheben. Lediglich das Ausführen von "clear all caches" im Install-Tool sorgt für Abhilfe.

    Wir konnten auch schon beobachten, dass die Seite auch ohne manuellen Eingriffs (cache clearing) wieder korrekt mit allen Objekt-Attributen dargestellt wird.

    @Winddancer: Hast du mittlerweile eine Lösung gefunden? f:comments kommen in meinem Template nicht vor. Der FileReference Fehler tritt bei mir nicht auf, ich denke nicht, dass da ein Zusammenhang zum Cache-Problem besteht.

    Der Beitrag http://www.typo3.net/forum/thematik/zeige/thema/116509 beschreibt selbiges Problem, leider wurden auch hier noch keine Lösungsvorschläge gepostet.

  • tronic tronic
    TYPO3-Anwärter
    0 x
    4 Beiträge
    0 Hilfreiche Beiträge
    06. 08. 2014, 22:00

    Hallo zusammen,

    tut mir Leid, dass ich diesen Thread wieder aufwärmen muss. Gibt es hierzu bislang neue Erkenntnisse?
    Bei mir tritt das Problem ebenfalls unter 6.2.1 auf, wobei ich lediglich auf der Produktionsumgebung und leider nicht auf der Entwicklungsumgebung den Fehler beobachten konnte. (Entwicklung und Prod. sind Abbildgleich.)
    Die Tabelle cf_extbase_datamapfactory_datamap beinhaltet die gecachten Models. Sobald diese geleert werden, ist das Problem vorerst gelöst. Das Problem ist ebenfalls vorerst gelöst, wenn man ca. eine Stunde ausharrt und den Cron für das Caching der Models abwartet.

    Da dieser Fehler in unregelmäßigen Abständen auftritt, gehe ich mittlerweile davon aus, dass die Reihenfolge der Models (Abhängigkeiten untereinander) falsch gecached wird.

    Für Ratschläge oder weitere Beobachten wäre ich euch äußerst dankbar...