Neu JTL Debug 2.0.4 und Shop 5.5.2 - Fehler 500

chefsalat

Sehr aktives Mitglied
10. Januar 2013
278
119
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
373
92
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
278
119
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
71
28
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 Wo ist JTL-Debug geblieben? Shopvariablen beim Shop-/Templateentwicklung sichtbar machen? Plugins für JTL-Shop 10
Sanktionsprüfung mit JTL JTL-Wawi 1.10 0
Neu Gutscheincodes aus Shopware 6 in JTL Wawi als Anmerkung zeigen? Shopware-Connector 0
Neu Database connection timeouts and interface lag in JTL-Wawi with background script managers User helfen Usern 0
Welche JTL Version aktuell am sinnvollsten JTL-Wawi 1.11 3
Neu Versandkostenersparnis mit JTL-Shipping: Vergünstigte Versandlabels ohne individuelle Rahmenverträge mit Versanddienstleistern User helfen Usern - Fragen zu JTL-Wawi 0
Neu product_visibility bei JTL-Wawi und Shopware 6 Shopware-Connector 1
Probleme mit Worker und JTL-App JTL-Wawi 2.0 2
Neu Probleme mit Import Datenbank vom Server auf lokal JTL-Wawi 2.0 User helfen Usern - Fragen zu JTL-Wawi 4
JTL Ameise fehlt im Programm x86 JTL-Wawi 2.0 3
Neu Plattformkosten auf Auftragspositionsebene in die JTL WaWi schreiben Arbeitsabläufe in JTL-Wawi 4
Neu JTL-Verknüpfung mit EC-Gerät fehlerhaft JTL-POS - Fehler und Bugs 0
Neu JTL-Wawi in einem EU-Land einsetzen – rechtliche & technische Fragen Installation von JTL-Wawi 2
Neu Versandart von Shopify zu JTL Wawi & Sendungsnummern von Wawi zu Shopify!? Shopify-Connector 0
Neu JTL Editionen / JTl Wawi / Shopify / Durchblick verloren Kosten / Was brauche ich wirklich User helfen Usern - Fragen zu JTL-Wawi 3
JTL Shop 4 Upgrade auf 5.5.0 --> Fehler 500 Upgrade JTL-Shop4 auf JTL-Shop5 3
JTL Shop 4 Upgrade auf 5.5.0 --> Fehler 404 Upgrade JTL-Shop4 auf JTL-Shop5 11
Neu JTL Pro Edition – Lizenzumstellungen und Abrechnungsfragen Smalltalk 42
Neu JTL Shop 5 und Klarna Plugins für JTL-Shop 0
Dropshipping-Labeldruck beim Lieferanten über JTL-Wawi (Versandstandorte / Workflows) JTL-Wawi 1.10 0
Neu JTL Shop 5.7 - Widerrufsbutton im B2B Templates für JTL-Shop 13
Neu JTL WMS & mehr – auf dem MultichannelDay.de Messen, Stammtische und interessante Events 0
DHL 4.0 mit JTL Wawi 1.7.13.0 JTL-Wawi 1.7 2
Neu Dropdown jtl shop länge einstellen Allgemeine Fragen zu JTL-Shop 2
Neu DATEV Buchungsdatenservice im Programm JTL Wawi den Serverfehler 500. JTL-Wawi - Ideen, Lob und Kritik 4
JTL-Shop 5.7.0 Widerrufsbutton Einrichtung JTL-Shop5 8
Neu JTL Pos liest keine Verkäufe mehr ein nach Update Einrichtung / Updates von JTL-POS 0
JTL hausinterner Herstellerslider auf Mobile Ansicht nicht sichtbar. Einrichtung JTL-Shop5 0
Neu JTL Shop Template Snackys Bildgrößen einstellen Templates für JTL-Shop 1
Neu Magento 2 Connector JTL Dienstleistung, Jobs und Ähnliches 0
Neu JTL-Shop 5.7 - Aktuell 5.7.0 Releaseforum 0
Neu Neuentwicklung - Helpdesk für JTL Wawi - Eure Ideen und Wünsche? User helfen Usern - Fragen zu JTL-Wawi 4
Amazon Abgleich will nicht ( JTL Ver. 1.9.8.0 ) JTL-Wawi 1.9 3
Neu Meta Felder Shopifyx JTL verbinden Shopify-Connector 8
Neu JTL-WaWi + ESL Connector — Entwicklung mit Kostenaufteilung gesucht Business Jungle 0
Neu Freelancer / JTL-Spezialist & Entwickler sucht Projekte – remote verfügbar Dienstleistung, Jobs und Ähnliches 0
Neu Gratisgeschenke im JTL Shop nicht wirklich nutzerfreundlich. Allgemeine Fragen zu JTL-Shop 4
Neu Anbindung JTL Wawi an Speditionen Dienstleistung, Jobs und Ähnliches 0
Neu HTTP 500 auf /Kontakt – Route scheint intern noch zu existieren, JTL-Weiterleitung greift nicht Betrieb / Pflege von JTL-Shop 0
Direktupdate von JTL Wawi 1.10.11.0 auf 2.0 möglich? JTL-Wawi 2.0 6
Neu JTL-Wawi Update Historie User helfen Usern - Fragen zu JTL-Wawi 2
Neu JTL Shipping Fehler bei DHL Versand über WMS ? User helfen Usern - Fragen zu JTL-Wawi 2
Neu [Tool] FloTax — eBay + Billbee → DATEV/Lexoffice | §25a | OSS | Reverse Charge | von JTL-Partner Dienstleistung, Jobs und Ähnliches 0
Fehlermeldung beim Anlegen einer zweiten JTL POS Kasse in JTL-Wawi JTL-Wawi 1.11 1
Neu JTL samt Kaufland & TikTok kurz hochschießen und dann schließen/abverkaufen? Business Jungle 7
Probleme mit JTL Worker JTL-Wawi 2.0 1
JTL Variantenartikel: Kein Preis im Schema.org („price fehlt“) – Ursache? Allgemeine Fragen zu JTL-Shop 2
(gelöst) Ecomdata - JTL Worker 2.0 - Startet nicht - Schließt ohne Fehlermeldung JTL-Wawi 2.0 3
Neu Update Wawi 1.10.16.0 auf 1.11.7 -> JTL-POS Einrichtung / Updates von JTL-POS 2
Neu Anbindung von JTL zu Metro (Rechnungen werden nicht zu Metro übertragen) User helfen Usern - Fragen zu JTL-Wawi 1

Ähnliche Themen