Nach Update auf 6.6.4.0 Fehlermeldung permission denied

Hallo zusammen,

ich habe heute das Update von 6.6.3.1 auf 6.6.4.0 durchgeführt. Das ist auch sauber durchgelaufen, der erste Test in der Staging Umgebung war auch erfolgreich, soweit so gut.

Im Backend habe ich dann noch den Cache geleert und wollte über die Frosh Tools noch das Theme kompilieren. Dort sehe ich dann aber nur folgendes:

Im Log erhalte ich dann folgende Fehlermeldung:

Uncaught PHP Exception Symfony\Component\Process\Exception\ProcessStartFailedException: „The command „‚du‘ ‚-s‘ ‚/www/…/var/cache/prod_hf58137c4d7d70c1d186f7d854e39f295‘“ failed. Working directory: /www/…/public Error: proc_open(): posix_spawn() failed: Permission denied“ at Process.php line 371 {„exception“:„[object] (Symfony\Component\Process\Exception\ProcessStartFailedException(code: 0): The command "‚du‘ ‚-s‘ ‚/…/var/cache/prod_hf58137c4d7d70c1d186f7d854e39f295‘" failed.\n\nWorking directory: /…/public\n\nError: proc_open(): posix_spawn() failed: Permission denied at /…/vendor/symfony/process/Process.php:371)“}

Sieht so aus, als gäbe es hier eine Änderung zwischen den 2 Versionen, denn bis zur 6.6.3.1 hatte ich da keine Probleme mit irgendwelchen Berechtigungen, um die Funktion disk usage aufzurufen.

Hat noch jemand diese Probleme?

Den Hoster (all inkl) schließe ich mal aus, da bis 5 Minuten vor dem Update alles noch ging und nach dem Update eben nicht mehr.

Welche Version der FroshTools?

Aktuellste Version der Frosh Tools, 2.1.2.

Mit einer 6.6.3.1 Installation ist alles in Ordnung, bei 6.6.4.0 kommt es zu dem Fehler.

Ein Kollege hat mir dazu geschrieben:
„Die haben bei Symfony den Code für Systemaufrufe in letzter Zeit mehrfach überarbeitet, früher wurde keine Exception „geworfen“, jetzt schon und im FroshTool wird das nicht abgefangen, was es (inzwischen) eigentlich müsste“.

Habe einige Shops in der Kombination - ohne Probleme.

Ich würde mal:

  • Plugin deinstallieren/installieren
  • Cache leeren
  • OPCache leeren

Das hat nix genutzt. Es könnte wohl am Hosting liegen. Da sind gewisse Befehle ja vom Hoster gesperrt und ich schätze mal, durch die letzten Änderungen ist jetzt ein Systembefehl dabei, der nicht mehr möglich ist.

Wer einen eigenen Server hat, wird das Problem deshalb nicht unbedingt haben.

Ich kann nur sehen, dass es mit allen eingesetzten Plugins in 6.6.3.1 problemlos geht, bei 6.6.4.0 nicht mehr, auch wenn ich außer den FroshTools alles andere deaktiviere.

Bei welchem Hoster bist du denn?

Bei all inkl.

Ob das jetzt dann auch wirklich das Problem ist, kann ich natürlich nicht genau sagen. Habe aber gerade eben mal noch einen komplett neuen Testshop aufgesetzt und nur die Froshtools installiert, sonst nichts und genau das gleiche Verhalten.

Das gleiche Verhalten kann ich auch bestätigen, ebenfalls bei All Inkl seit Update 6.6.4.0 und Transfer auf neuen Server. @ChriMaLuxe Hast du zwischenzeitlich eine Lösung gefunden?

Seitens FroshTools kommt nur die Frage:
Could you please check the result of the status-request and/or the error logs?

Ja, ich habe zumindest eine „Schmutzlösung“. Und zwar musst du die Datei CacheHelper.php unter /custom/plugins/FroshTools/src/Components bearbeiten.

Dort bei „private static function getSizeFast…“ ein „return null;“ am Anfang einfügen. Sollte dann so aussehen:

private static function getSizeFast(string $dir): ?int
    {
        return null;
        $process = new Process(['du', '-s', $dir]);
        $process->run();

        if (!$process->isSuccessful()) {
            return null;
        }

        if (preg_match('/\d+/', $process->getOutput(), $match)) {
            return (int) $match[0] * 1024;
        }

        return null;
    }

Damit läuft es dann wieder. Ist so aber natürlich nicht updatesicher und muss bei jedem Update nochmal eingebaut werden. Vtl. wird es ja irgendwann noch geändert.

Du kannst es ja gerne mal an Froshtools weitergeben in Guthub, evtl. schauen sie dann ja mal danach. Ich hatte ursprünglich gedacht, es liegt an Dateirechten oder sowas, ist es aber nicht. Deshalb wurde mein Ticket geschlossen.