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