At 02:02 PM 9/13/2004 +0300, Stanislav Malyshev wrote:
AD>>ATM ZE2 calls destructor at the end of the request and no matter is
AD>>there were a fatal error (which should probably stop executing the
AD>>script). In some cases it leads to nasty segfaults (me and report's
AD>>author can reproduce it, but others can't. weird..).
Well, the cause of the faults is as follows:
If we are in shutdown, and one of the destructors fails with fatal error,
then other destructors for other objects are not called. Thus, their
if they hold some objects, destructors for these objects will not be
called. Later, when the storage is cleaned with
zend_objects_store_free_object_storage(), engine will attempt to call
dtors for objects that didn't have their dtors called before. However, on
that stage engine is already unable to run PHP code (function and class
tables are already cleaned, etc.) - so it crashes.
What I would propose is to inhibit calling destructors after
shutdown_destructors() was finished.
--
Stanislav Malyshev, Zend Products Engineer
[EMAIL PROTECTED] http://www.zend.com/ +972-3-6139665 ext.115
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php