Hello,
PHP gibt den Fehler (27) scheinbar nur vom OS weiter.
Der aufgetretene Fehler stammt also nicht direkt von der Session, auch wenn er während einer Session-Initialisierung aufgetreten ist und in diesem Zusammenhang gemeldet wurde.
Er tritt übrigens, soweit sich das bisher mittels Google feststellen lässt, bei Stratokunden auf.
Es wäre auch möglich gewesen, dass PHP vorher prüft, wieviel Speicher es für das "Auspacken" der Session-Datei benötigt, und dies dann als "Datei zu groß" meldet.
Das ist aber nicht der Fall. PHP prüft vorher nicht und lässt einen ins Messer rennen.
Die Anomalie bei den Sessions ist mit der nächsten Version (PHP 6) angeblich sowieso beseitigt. Dann werden gespeicherte Sessions beim "Wiederauspacken" nicht mehr den ca. dreifachen Speicherbedarf haben können, weil es kein "Register Globals" und auch keine "Long-Arrays" ($HTTP_*_VARS) mehr geben wird.
Und wann PHP wegen Speichermangels abschmiert, ist auch nicht einfach vorhersehbar. Am nächsten kommt man dem Moment, wenn man
memory_get_usage(false)
+ memory_get_usage(true)
- memory_limit # kann mit K, M, G versehen sein. vorher umrechnen!
-------------------------
~ Rest des zur Verfügung stehenden Speichers
rechnet.
Bei meinen Versuschen mit 4M Memory-Limit (damit es nicht so lange dauert) waren ca. 79.000 Bytes mehr vorhanden, als es sich aus den obigen Größen ausrechnen ließ. Ein Blick in den Source-Code für die Speicherverwaltung könnte da sicher mehr Aufschluss geben.
Das verwendete "Testscript" liegt unter
http://selfhtml.bitworks.de/session_memory/session_memory_limit.php.txt
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)
