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
296
75
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
66
27
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
JTL-Wawi startet nach Neustart nicht / hängt auf neu eingerichtetem PC (Remote-Datenbank) JTL-Wawi 1.11 1
Neu JTL-Shop 5.2.3 – Google-Shoppin-Plugin 2.3.0: Mehrere Rückgaberichtlinien (DE + Ausland) bei einem Feed / return_policy_label Plugins für JTL-Shop 0
Neu Auftragsbezogene Pickliste auch im JTL-WMS (nicht nur mobil) nutzen JTL-WMS / JTL-Packtisch+ - Ideen, Lob und Kritik 0
Seit dem Update auf JTL Wawi 1.11.4 funktioniert der Workflow "Datei Schreiben" nicht JTL-Wawi 1.11 1
JTL Wawi 1.11.4 "Dashboard übernehmen" funktioniert nicht JTL-Wawi 1.11 1
Neu JTL Pos - Bon - Artikelname kürzen Allgemeine Fragen zu JTL-POS 0
JTL-Wawi App (1.11.x) – Lizenz angeblich belegt nach Löschen aller App-Registrierungen / kein Reset möglich JTL-Wawi App 2
Smart App Control blockiert start von JTL-Wawi JTL-Wawi 1.11 0
Manuelle Workflows nicht mehr ausführbar (App 1.11.0 JTL 1.11.5) JTL-Wawi App 4
Neu Shopify Geschenkgutscheine > JTL > JERA JTL2BMD Shopify-Connector 0
Neu JTL Wawi auf Windows Server 2025 mit SQL 2025? Installation von JTL-Wawi 6
Erfahrungen zur JTL Wawi 1.11.5 – Tipps, Bugs und Praxisberichte JTL-Wawi 1.11 10
Seit Update auf 1.11.4 Workflow für Kartonauswahl gibt error JTL Das Objekt mit Nullwert muss einen Wert haben. BrowsePk: 152325 WorkflowAktionId: 155 JTL-Wawi 1.11 1
Neu JTL SHOP 5.6 und Konfigurationsartikel Allgemeine Fragen zu JTL-Shop 0
Neu JTL-Wawi 1.11.4 – Vaterartikel lässt sich nach Entfernen eines Kindartikels nicht mehr speichern JTL-Wawi - Fehler und Bugs 3
Neu JTL-Packtisch Sortieren ist Grau Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Neu JTL-Kundencenter 2FA Smalltalk 8
Neu Empfehlung einer Woocommerce & JTL Agentur WooCommerce-Connector 2
Neu JERA kann keine Conrad-Erlöse aus JTL importieren, JTL-SCX importiert keine Conrad-Rechnungen JTL-ShippingLabels - Fehler und Bugs 3
Neu JTL Diag / SQL Mitschnitt lässt sich nicht mehr starten User helfen Usern - Fragen zu JTL-Wawi 6
Neu Neues E-Commerce Business mit JTL Wawi - Jtl Shop - Lexware Office (online) - Fragen Starten mit JTL: Projektabwicklung & Migration 2
Neu JTL auf dem Server duplizieren für Experimente Installation von JTL-Wawi 1
Neu Vorschlag: Inventur direkt im JTL-WMS ermöglichen JTL-WMS / JTL-Packtisch+ - Ideen, Lob und Kritik 0
Neu Wo kann ich mich über JTL Kundencenter beschweren? 20 Minuten Lang einen Bug im Ticket dokumentiert, und am Ende "ein Fehler ist aufgetreten" Smalltalk 3
JTL-Ameise - Problem Artikeldaten Import JTL-Wawi 1.11 3
Neu JTL Shopify Connector selektiver Import in JTL Shopify-Connector 2
Angebot auf EBay erhält Netto Preise aus JTL eBay-Anbindung - Fehler und Bugs 3
Neu Bestellung aus JTL-Shop wird nicht in die Wawi übernommen Allgemeine Fragen zu JTL-Shop 1
Neu Update: JTL-Gambio-Connector Gambio-Connector 0
Neu JTL - Cloud-Lösung ? Smalltalk 3
Neu Wie verbanne ich Fremdsprachen-Anfragen aus der JTL-Search? Allgemeine Fragen zu JTL-Shop 0
Neu Export/Import aller Amazon Angebote über die JTL-Ameise JTL-Ameise - Fehler und Bugs 1
Neu Nach Update auf JTL Shop 5.6.1 - Play/Pause Buttons im Layout!? Installation / Updates von JTL-Shop 6
Neu 🚨 Hinweis für JTL-Händler, die Taxdoo nutzen News, Events und Umfragen 1
Neu Amazon VCS - JTL Wawi > 1.10 - Lexware: Suche Best Practice Amazon-Anbindung - Ideen, Lob und Kritik 1
JTL-WAWI teilweise extrem lahm JTL-Wawi 1.10 8
Anfrage zur Einrichtung des Dashboards (Gewinnanzeige) in JTL-Wawi – Remote-Support über AnyDesk JTL-Wawi 1.10 6
Neu Bestehende POS an WAWI anbinden (JTL Administrator) Einrichtung / Updates von JTL-POS 7
JTL Wawi 1.8.11.2 zum Download JTL-Wawi 1.8 1
JTL- Worker Dienst lässt sich nicht installieren über .bat-Datei JTL-Wawi 1.11 1
Neu JTL Wawo Objektverweis wurde nicht auf eine Objektinstanz festgelet JTL-Wawi - Fehler und Bugs 0
Neu JTL Shop Mailversand geht nicht mehr - Address blicked Allgemeine Fragen zu JTL-Shop 5
JTL-WaWi Konfigurator Bestandteile in WMS zusammenfassen JTL-Wawi 1.11 3
Störung der Domain Infrastruktur JTL-Software Störungsmeldungen 0
Neu Woocommerce + JTL Connector + Litespeed Cache WooCommerce-Connector 0
Neu BMEcat Schnittstelle JTL-Wawi [DEV] Schnittstellen Import / Export 3
Neu JTL-MeetUp mit eBay in Berlin Messen, Stammtische und interessante Events 0
Neu JTL-Shop: Veraltete URLs & Weiterleitungen in der Sitemap – wie lösen? Allgemeine Fragen zu JTL-Shop 0
Neu Coupon-Steuer Plugin: Korrekte Steuerberechnung für JTL-Shop Coupons Plugins für JTL-Shop 1
Neu JTL Coupon Alternative - was gibt es so? Plugins für JTL-Shop 2

Ähnliche Themen