Projekt

Allgemein

Profil

Aktionen

Bug #272

offen

[Bugsink] ErrorException: Warning: unlink(/srv/www/www.verl.de/pages/public/typo3temp/assets/tx_staticfilecache/https_www.verl.de_443/datenschutzerklaerung/inf…

Von Bug Sink vor etwa 1 Monat hinzugefügt.

Status:
Neu
Priorität:
wichtig
Zugewiesen an:
-
Beginn:
20.09.2026
Abgabedatum:
% erledigt:

0%

Geschätzter Aufwand:

Beschreibung

Bugsink: https://bugsink.cytrus.de/issues/issue/b7cde1f2-0697-4b7f-a2fa-5b9e214772df/event/last/

Typ: NEW issue

Projekt: www-verl-de

Bugsink Alert

ErrorException: Warning: unlink(/srv/www/www.verl.de/pages/public/typo3temp/assets/tx_staticfilecache/https_www.verl.de_443/datenschutzerklaerung/inf…


Automatisch erstellt durch n8n

KI-Analyse:

1. Ursache identifizieren

Race Condition / Inkonsistenter Cache-Zustand in der Extension staticfilecache.

Der Fehler tritt im Shutdown/Response-Finalisierungs-Phase auf (erkennbar an ResponsePropagation Middleware ganz unten im Stack). Die Extension staticfilecache (bzw. tx_staticfilecache) versucht, eine Konfigurationsdatei (index.config.json) für einen gecachten statischen HTML-Export zu löschen (unlink), diese Datei existiert physisch jedoch nicht mehr auf dem Dateisystem.

Typische Szenarien:

  • Parallel Requests: Zwei Requests verarbeiten dieselbe URL. Request A löscht den Cache-Eintrag (oder regeneriert ihn), Request B versucht kurz darauf im Shutdown noch Metadaten aufzuräumen, die Request A bereits entfernt hat.
  • Manueller Cache-Clear: Ein Redakteur/Cronjob leerte typo3temp/assets/tx_staticfilecache während ein Request noch lief.
  • Fehlerhafte Logik: Die Extension prüft vor dem unlink nicht auf Existenz (file_exists / is_file).

Da es sich um einen Warning handelt, der via ErrorHandler zu ErrorException eskaliert, bricht die Applikation hier ab (Weißer Bildschirm / 500er), obwohl das Caching selbst "nur" ein Nebenaspekt ist.


2. Fix beschreiben (konkret)

Sofortmaßnahme (Workaround im Projekt-Code / AdditionalConfiguration.php / ext_localconf.php):
Den ErrorHandler für E_WARNING in Shutdown-Funktionen entschärfen oder die Extension patchen. Besser: Extension aktualisieren/fixen.

Korrektur in der Extension staticfilecache (Datei: Classes/Cache/StaticFileCache.php oder ähnlich, je nach Version):

Suche nach der unlink-Aufrufstelle für index.config.json (meist in removeCacheFiles, clearCacheForPage oder shutdown-Methode).

Ersetze:

unlink($configFilePath);

Durch defensiven Code:

// TYPO3\Core\Utility\GeneralUtility::unlink_linktempfiles() nutzt intern @unlink und prüft Existenz.
// Oder nativ:
if (is_file($configFilePath)) {
    unlink($configFilePath);
}
// Oder mit Error Suppression (weniger sauber, aber schnell):
@unlink($configFilePath);

Empfehlung: Update der Extension auf die neueste Version (z. B. b13/staticfilecache >= 5.x / 6.x für TYPO3 v11/v12), da neuere Versionen GeneralUtility::unlink_linktempfiles() nutzen oder Filesystem-Abstraktionen ($file->delete()) die robust sind.


3. Betroffene TYPO3 Extension nennen

staticfilecache (Composer: b13/staticfilecache oder legacy tx_staticfilecache)

Pfad-Beweis: typo3temp/assets/**tx_staticfilecache**/...


4. Confidence

95%

Begründung: Der Pfad tx_staticfilecache ist eindeutig. Der Stacktrace zeigt Core-Middlewares (ResponsePropagation), was auf einen shutdown-Hook oder terminate()-Listener der Extension hinweist, der nach dem Kern-Response läuft. unlink auf fehlende Datei ist ein klassisches Pattern-Problem genau in dieser Extension bei High-Concurrency oder Cache-Clearing.

Nichts anzuzeigen

Aktionen

Auch abrufbar als: Atom PDF