Neu Shop 4.06 Login Error: Fatal Error: Allowed memory size exhausted

Neodym

Sehr aktives Mitglied
13. Februar 2012
1.239
101
Berlin
Immer wieder haben wir Geschäftskunden, die sich in ihren Kundenaccount auf der Seite einloggen wollen, und diesen Fehler bekommen:

"Fatal Error. Allowed memory size of 536870912 bytes exhausted (tried to allocate 41520 bytes) in on line 0"


Das Problem tritt immer wieder auf, lässt sich aber nur schwer eingrenzen.

Die Kunden versuchen sowohl PC-Browser als auch mobile Geräte.

Was kann das sein?
Der Server ist konfiguriert mit

Max PHP Ausführungszeit 930
PHP Speicherlimit 512M
Maximale PHP Übertragungsgröße FILE 509M
Max PHP Übertragungsgröße POST 511M
allow_url_fopen aktiviert: ja
 

Patrick Gugelsberger

Moderator
Mitarbeiter
1. Februar 2019
454
78
Hallo @Neodym,

es gab einen Bug der dafür sorgte das in der Shopdatenbank "cLand" bspw. mit Deutschland statt dem dazugehörigen ISO Code DE befüllt war was dann dazu führte das bei entsprechenden Kundenkonten o.g. Fehler kam.

Prüf mal bitte in der Datenbank bei den jeweiligen Kunden ob in den folgenden Feldern das Land ausgeschrieben ist statt als ISO Code hinterlegt ist.

tLieferadresse->cLand
tRechnungsadresse->cLand
tKunde->cLand

Das wären so die üblichen verdächtigen Felder bei solchen Fehlern.

Sollte das der Fall sein würde ich dir ebenfalls zu einem Wawi Update raten da dieser Fehler mit einer der neueren Wawi Versionen gefixed wurde.
 

Neodym

Sehr aktives Mitglied
13. Februar 2012
1.239
101
Berlin
Hallo @Neodym,

es gab einen Bug der dafür sorgte das in der Shopdatenbank "cLand" bspw. mit Deutschland statt dem dazugehörigen ISO Code DE befüllt war was dann dazu führte das bei entsprechenden Kundenkonten o.g. Fehler kam.

Prüf mal bitte in der Datenbank bei den jeweiligen Kunden ob in den folgenden Feldern das Land ausgeschrieben ist statt als ISO Code hinterlegt ist.

tLieferadresse->cLand
tRechnungsadresse->cLand
tKunde->cLand

Das wären so die üblichen verdächtigen Felder bei solchen Fehlern.

Sollte das der Fall sein würde ich dir ebenfalls zu einem Wawi Update raten da dieser Fehler mit einer der neueren Wawi Versionen gefixed wurde.


1.) Es tritt bisher nur bei ausländischen Kunden auf
2.) Wir haben mittlerweile Wawi 1.5.11.2, das kann es also auch nicht sein


Wir hatten es heute gerade wieder. Sehr ärgerlich da es ein sehr guter Stammkunde ist... der kann jetzt nicht einkaufen
 

css-umsetzung

Offizieller Service Partner
SPBanner
6. Juli 2011
8.651
2.702
Berlin
Firma
css-umsetzung
1.) Es tritt bisher nur bei ausländischen Kunden auf
2.) Wir haben mittlerweile Wawi 1.5.11.2, das kann es also auch nicht sein


Wir hatten es heute gerade wieder. Sehr ärgerlich da es ein sehr guter Stammkunde ist... der kann jetzt nicht einkaufen


doch kann es, denn entscheidend ist was du vorher für eine wawi hattest.
Es gibt dafür einen Hotfix mit dem man sich behelfen könnte.
 

Neodym

Sehr aktives Mitglied
13. Februar 2012
1.239
101
Berlin
OK.
Ich habe in PHPMyadmin geprüft was bei dem Kunden bei Länderinformationen steht, bei allen drei Kriterien und es steht dort korrekt CH als ISO-Code

Somit weiss ich nicht was nun?
Was für ein Hotfix meinst du? Wo ist der zu bekommen?
 

css-umsetzung

Offizieller Service Partner
SPBanner
6. Juli 2011
8.651
2.702
Berlin
Firma
css-umsetzung
Ich erkläre das mal vorsichtshalber weil ich nicht weiß ob du über die Vorgehensweisen im JTL Shop komplett informiert bist.

Die Lieferadresse wird mit jeder Bestellung neu geschrieben und der Shop holt sich bei Stammkunden immer die zuletzt verwendete, wenn diese Fehlerhaft ist, dann hast du dieses Problem.
Der Kunde hat also x Einträge in der DB

Bitte führe in deinem phpmyadmin mal diesen query aus, dann siehst du ob dies ein mögliches Problem ist, wenn ja dann solltest du den fix einspielen.

Code:
SELECT tk.dVeraendert ,tl.cLand, tl.* FROM `tlieferadresse` as tl
left join tkunde as tk on tk.kKUnde = tl.kKunde
where CHAR_LENGTH( tl.cLand )>2  group by tl.cLand
order by tk.dVeraendert

Der Fix kommt von Falk Prüfer und scheint das Problem zu beseitigen:

Code:
Ansonsten kann man auch in /classes/class.JTL-Shop.Lieferadresse.php in der Funktion loadFromDB($kLieferadresse) ein:
$this->cLand            = $this->pruefeLandISO($this->cLand);
 

Neodym

Sehr aktives Mitglied
13. Februar 2012
1.239
101
Berlin
Bei der Ausführung deines Befehls bekomme ich tatsächlich einen Kunden angezeigt (Frankreich) wo es falsch geschrieben ist.
Aber nur einen und nicht einen von denen der das Problem hatte.
 

css-umsetzung

Offizieller Service Partner
SPBanner
6. Juli 2011
8.651
2.702
Berlin
Firma
css-umsetzung
Der Query zeigt dir nur an ob ein Problem besteht, wenn du das group by tl.cLand entfernst dann würdest du alle sehen die das betrifft und dann unbedingt auf die Kunden ID achten.

Wenn der betreffende Kunde dann noch immer nicht dabei ist, dann könnte es noch sein (schlag mich bitte nicht) das deine Steuer Einstellungen in der wawi nicht OK sind, dann würde die wawi dich aber bei jedem Start anmeckern das sollte also eigentlich nicht sein.

Alles andere müsste dann wirklich bei dir direkt im Shop und in der Datenbank geprüft werden.
 

Ähnliche Themen