It seems there is a problem in either the PHP's shutdown sequence in
php_request_shutdown() or destrutor order in ZE2. The problem is quite
simple, the module loaded via dl() (when libdl is used) is unloaded before
the objects it creates are destroyed. Consequently when Zend Engine tries to
destroy the object the handler pointer is pointing to a random memory
address.
This can only be replicate if libdl is used because the module unloading is
conditional upon HAVE_LIBDL inside module_destructor().
To demonstrate the problem compile pecl/date as a shared module and run
-r ' dl("date.so"); $a = new date(); '
Ilia
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php