Re: [patch] Zend/zend_objects_API.c - bug #29980 (segfault while executing __destruct())

From: Date: Mon, 13 Sep 2004 11:02:43 +0000
Subject: Re: [patch] Zend/zend_objects_API.c - bug #29980 (segfault while executing __destruct())
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-12756@lists.php.net to get a copy of this message
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 stas@zend.com http://www.zend.com/ +972-3-6139665 ext.115

« previous php.internals (#12756) next »