Neu JTL Debug 2.0.4 und Shop 5.5.2 - Fehler 500

chefsalat

Sehr aktives Mitglied
10. Januar 2013
271
117
Sobald ich "Anzeige von Smartyvariablen aktivieren?" aktiviere, bekomme ich einen 500er Fehler und folgende Meldung

Got error 'PHP message: PHP Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 4096 bytes) in /home/users/webshop/www/betashop/plugins/jtl_debug/Debugger.php on line 234; PHP message: PHP Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 12288 bytes) in Unknown on line 0',

Neuste Version von https://gitlab.com/jtl-software/jtl-shop/plugins/jtl_debug geladen
 

Morimus

Sehr aktives Mitglied
16. Mai 2019
251
60
Abhängig von der Art des Hosts würde ich erstmal versuchen das PHP memory_limit von 512 MB auf 1024 zu erhöhen.
Vielleicht reicht das ja schon.
 

chefsalat

Sehr aktives Mitglied
10. Januar 2013
271
117
Mhh, im 5.3.4er genügt 256MB, habe es extra schon auf 512 MB gesetzt. Kommt mir auch reichlich übertrieben vor
 

Traumpixel

Gut bekanntes Mitglied
11. April 2021
62
25
Köln
Hallo zusammen,

das Problem liegt an der Variablen $parentSmarty, die in der Debug-Ansicht durch eine zyklische Referenz zu einer endlosen Rekursion führt und dadurch einen Memory-Overflow Fehler verursacht. Auch ein Erhöhen des memory_limits würde hier nicht helfen.

Ich habe gesehen, dass bereits gestern ein Hotfix in Git (https://gitlab.com/jtl-software/jtl-shop/plugins/jtl_debug/-/blob/master/Debugger.php) hinzugefügt wurde, der beim Auftreten der Variablen $parentSmarty mit einem break die weitere Verarbeitung beendet.
Allerdings finde ich diese Lösung nicht elegant, da dadurch fast 35 wichtige nachfolgende Variablen verloren gehen, die ansonsten sauber verarbeitet würden.

Daher wäre meiner Meinung nach ein Überspringen der Variablen $parentSmarty eleganter. Dabei würde ausschließlich nur diese eine Variable übersprungen bzw. das Kind-Element durch einen Platzhalter ersetzt, ohne den gesamten Rest der Struktur zu verlieren. So bleiben alle anderen Variablen erhalten und der Debugger bleibt stabil.

Die Lösung mit gezieltem Überspringen wäre, die Funktion transform (ca Zeile 185) in der Debugger.php wie folgt zu ersetzen:
PHP:
    private function transform($node, $key, $parent = null, bool $showPath = false): array
    {
        $key  = (string)$key;
 
       // HOTFIX: parentSmarty überspringen, um Memory-Overflow zu verhindern
        if ($key === 'parentSmarty') {
            return [
                'type'  => 'string',
                'key'   => $key,
                'class' => 'string',
                'value' => '[SKIPPED - parentSmarty - MEMORY OVERFLOW PREVENTION]',
                'path'  => ''
            ];
        }
 
        $type = \gettype($node);
        $res  = [
            'type'  => $type,
            'key'   => $key,
            'class' => $type === 'object' ? \get_class($node) : $type
        ];
        if ($res['type'] === 'array' && $this->isAssoc($node)) {
            $res['type'] = 'assoc_array';
        }
        // we don't care what numeric type it is, we just want to know if it is a number
        if (\is_numeric($node)) {
            $res['type'] = 'number';
        }
        $res = $this->buildPath($showPath, $res, $parent, $key);
        if ($res['type'] === 'object' || $res['type'] === 'array' || $res['type'] === 'assoc_array') {
            // build children array recursively
            $res['children'] = [];
            $res['length']   = 0;
            foreach ($node as $k => $value) {
                $k = (string)$k;
                $res['children'][$k] = $this->transform($value, $k, $res, $showPath);
                ++$res['length'];
            }
        } else {
            // simple data type
            $res['value'] = $node;
        }

        return $res;
    }

Damit wird nur parentSmarty übersprungen bzw. ersetzt, der Debugger bleibt vollständig funktionsfähig und alle folgendenen Variablen werden weiterhin angezeigt.

Liebe Grüße
 
Zuletzt bearbeitet:
Ähnliche Themen
Titel Forum Antworten Datum
Neu Deprecated: JTL\Catalog\Hersteller: getter should be used to get kHersteller in /www/htdocs/w00dcf50/jtlshop/includes/src/MagicCompatibilityTrait.php Installation / Updates von JTL-Shop 2
Neu Hilfe bei Verbindung von EC-Terminal (CCV A920) mit JTL-POS Allgemeine Fragen zu JTL-POS 0
Neu JTL Wawi braucht viel RAM und CPU wenn der Prozess lange läuft, ohne dass gearbeitet wird JTL-Wawi - Fehler und Bugs 2
JTL-Wawi 1.5.9.0 JTL-Wawi 1.6 2
Neu JTL Shop 5: ein Kundenkonto in der WAWI mit mehreren Konten im Webshop Allgemeine Fragen zu JTL-Shop 7
Neu Abgleich mit JTL-Wawi funktioniert nicht Allgemeine Fragen zu JTL-POS 0
JTL Ameise - Buchhaltungsdaten exportieren JTL-Wawi 1.9 1
Neu Server Error 500 nach dem Installieren von JTL Theme Editor Plugins für JTL-Shop 3
Neu JTL Pos Bonnummer nicht fortlaufend nach Anpassung des Bon-Nummernkreises JTL-POS - Fehler und Bugs 0
Neu Image POST for Article JTL FFN API Technische Fragen zu den JTL-Connectoren 0
Neu JTL auf LINUX Rechner User helfen Usern - Fragen zu JTL-Wawi 5
Neu Welcher Zahlungsanbieter mit JTL-POS Allgemeine Fragen zu JTL-POS 0
Neu JTL Connector Allgemeines zu den JTL-Connectoren 1
Neu Hilfe bei Anpassung der JTL-Rechnung (v1.9.4.6) – EK pro Stück × Menge als Summe je Position + Privateinlage-Hinweis Dienstleistung, Jobs und Ähnliches 1
Neu JTL WaWi Verfügbarkeits-Liste Arbeitsabläufe in JTL-Wawi 2
Kabelkonfektionierung mit JTL Konfigurator JTL-Wawi 1.10 0
JTL WAWI GUI Update von 1.9.8.0 auf 1.10.13.1 nicht möglich WAWI reagiert nicht JTL-Wawi 1.10 3
Klarna - Zahlung wird in JTL nicht automatisch gesetzt / "zu erfassen" im Klarna-Dashboard JTL-Wawi 1.10 3
Webinar: Mein Start mit JTL | Produkte, Funktionen, Einsatzmöglichkeiten Messen, Stammtische und interessante Events 0
Webinar: Mein Start mit JTL | Produkte, Funktionen, Einsatzmöglichkeiten Messen, Stammtische und interessante Events 0
Webinar: Mein Start mit JTL | Produkte, Funktionen, Einsatzmöglichkeiten Messen, Stammtische und interessante Events 0
Webinar: Mein Start mit JTL | Produkte, Funktionen, Einsatzmöglichkeiten Messen, Stammtische und interessante Events 0
Webinar: Mein Start mit JTL | Produkte, Funktionen, Einsatzmöglichkeiten Messen, Stammtische und interessante Events 0
Webinar: So meisterst du deine JTL-Steuereinstellungen – mit countX & JERA am 11.09.25 Messen, Stammtische und interessante Events 0
JTL-Stammtisch Hannover-Nord / Wedemark 23.09.25 powered by Yagemi media:consulting Messen, Stammtische und interessante Events 0
JTL-Stammtisch Berlin 19.09.25 powered by Solution 360 GmbH Messen, Stammtische und interessante Events 0
JTL-MeetUp München am 18.09.25 - powered by Novalnet AG! Messen, Stammtische und interessante Events 0
Neu Jtl WMs Wareneingang Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Neu Ankündigung: Entwicklung eines modified-Connectors für JTL-WaWi Modified eCommerce-Connector 0
Neu ecomdata offline? Shop und JTL Wawi nicht erreichbar User helfen Usern - Fragen zu JTL-Wawi 16
Neu Hilfe beim Einrichten von JTL-Wawi mit unternehmensspezifischen Artikeldaten Arbeitsabläufe in JTL-Wawi 14
Neu Anbindung von Global E als Versanddienstleister in JTL – wer wäre dabei? JTL-Wawi - Ideen, Lob und Kritik 0
Neu Eazyedit - KI-Bildbearbeitung für JTL User helfen Usern 0
JTL Rest API als Dienst JTL-Wawi 1.10 0
JTL Connector Steuersatz Mapping JTL-Wawi 1.6 0
Neu Kann ich irgendwie ausgeben, welches JTL-Konto das Dokument gedruckt hat? Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 11
Neu Neue Software: Workflows exportieren und importieren in JTL (WCopy4jtl) [WAWI-36174] Arbeitsabläufe in JTL-Wawi 4
Neu JTL Shop 5 Probleme mit Anlegen eines Kundenaccounts Allgemeine Fragen zu JTL-Shop 4
Neu Umsetzung eines doppelten Dropship-Prozesses in JTL-Wawi? User helfen Usern - Fragen zu JTL-Wawi 4
Neu JTL PayPal Checkout 5.3.0 mit Shop 5.5.2 - Artikel nur sichtbar wenn Kunde eingeloggt ist oder Artikel nicht verfügbar ist Plugins für JTL-Shop 6
Neu Lizenzwarnung in JTL-Wawi – trotz gültiger eigener Lizenz Onlineshop-Anbindung 4
Steuerklassen prüfen nach Update auf JTL-Wawi 1.9 JTL-Wawi 1.9 1
Neu Session Blocking JTL-Shop 5.5.1 JTL-Shop - Fehler und Bugs 0
Kunden UStID wird nicht aus Amazon in JTL übermittelt Amazon-Anbindung - Fehler und Bugs 4
Neu Wareneingang ohne JTL-WMS Mobile: Umständlich?! Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Neu JTL 1.10.13 - Beta neue Oberfläche funktioniert nicht JTL-Wawi - Fehler und Bugs 1
Neu Freitexte aus Shopware in JTL Allgemeine Fragen zu JTL-Shop 7
Probleme beim Import von eBay-Produkten in JTL – neue Artikel werden nicht übernommen eBay-Anbindung - Fehler und Bugs 5
Neu Sortierung Artikel Wawi - JTL Shop Allgemeine Fragen zu JTL-Shop 1
Neu Massive Probleme mit JTL-Connector zu Shopify – lohnt sich der Einsatz überhaupt? Shopify-Connector 10

Ähnliche Themen