Hab heute von 3.4 auf die obige Version umgestellt.
Die heftigen Umlaut-Probleme bekomme ich langsam in den Griff, aber nicht den fogenden bombastischen Fehler:
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 45 bytes) in [CONFIG\StrukturDefinitionen\DefSemap] on line 187
Umgebung:
Habe ein Skript, das per Ping mein LAN überprüft; ein Loop wird mehrfach bis zu 6x ausgeführt; gab unter 3.4 nie Probleme.
Unter der Version 4.0 knallt es bereits in der 2ten Runde nach ca. 30 Sekunden mit dem obigen Fehler.
Der Fehler tritt in einer function auf, die bereits mehrfach vor dem Speicherüberlauf aufgerufen wurde. Hier ein Auszug:
...
//$Liste = array_merge (IPS_GetCategoryList (), IPS_GetInstanceList ()); // oder es handelt sich um eine Instanz
$Liste = IPS_GetCategoryList (); // betrachte wg. Speichermangel nur Kategorien
$ParentId = false;
foreach ($Liste as $ID) {
if (IPS_GetObject ($ID)['ObjectIdent'] == $Obj[0]) { // das ist "line 187"
$ParentId = $ID;
break;
}
}
...
Wenn ich statt der Befehlszeile mit der IPS_GetCategoryList die darüberliegende auskommentierte Befehlszeile mit dem array_merge verwende, tritt der Fehler früher auf.
Fehler bekannt? Abhilfe durch eine Version aus 4.1 ?
Viele Grüsse
Harald
Weitere Infos:
Windows 7 Ultimate
Hersteller HP
Modell ProLiant MicroServer
Gesamter Systemspeicher 2,00 GB RAM
Systemtyp 64 Bit-Betriebssystem
Anzahl der Prozessorkerne 2
Ich kann dir leider nicht sagen, warum PHP mehr Speicher verbraucht. Seit der 3.4 haben wir von PHP 5.4 auf PHP 5.6 gewechselt. Somit ist dies leider ein generelles PHP Problem und nichts, dass ich beeinflussen oder gar korrigieren kann. Ich würde nach und nach versuchen das Skript zu reduzieren bis der Fehler nicht kommt, um die Ursache zu finden. Wie gesagt: Ich kann da leider nichts tun.
Die Fehlermeldung in der Konsole liegt daran, dass du eine alte Konsole nutzt. Wenn am Anfang die Sicherheitsmeldung kommt, hast du bestimmt Ignorieren gedrückt. Das tut man nicht einfach so