Details
-
Type:
Bug
-
Status:
Resolved
-
Priority:
Minor
-
Resolution: Fixed
-
Affects Version/s: 1.5.1, 1.7.1
-
Fix Version/s: 1.9.0
-
Component/s: Zend_Session
-
Labels:None
-
Fix Version Priority:Should Have
Description
This is related to to http://framework.zend.com/issues/browse/ZF-1325
Take a look at how Zend_Session::start() handles errors that might arise during the real session_start() call:
set_error_handler(array('Zend_Session_Exception', 'handleSessionStartError'), E_ALL);
That error handler will unconditionally set a flag which gets picked up a few lines later (again in Zend_Session::start()):
if (Zend_Session_Exception::$sessionStartError !== null) { set_error_handler(array('Zend_Session_Exception', 'handleSilentWriteClose'), E_ALL); session_write_close(); restore_error_handler(); throw new Zend_Session_Exception(__CLASS__ . '::' . __FUNCTION__ . '() - ' . Zend_Session_Exception::$sessionStartError); }
So, ANYTHING falling under E_ALL (even E_WARNING or, gasp!, E_NOTICE) will end up raising an exception, and the session will not start. Surely this is not the desired behavior.
In my particular situation, this is a problem because I get a couple of normal/expected include warnings thrown by Zend_Loader during my unserialize callback.
The fix to
ZF-1325is the source of this issue.ZF-1325is the source of this issue.