ID: 36006 Updated by: [EMAIL PROTECTED] Reported By: php_nospam at ramihyn dot sytes dot net -Status: Assigned +Status: Closed Bug Type: Scripting Engine problem Operating System: Windows, Debian Sarge PHP Version: 5.1.2 Assigned To: dmitry New Comment:
Fixed in CVS HEAD, PHP_5_1 and PHP_5_0. Previous Comments: ------------------------------------------------------------------------ [2006-01-14 01:54:33] php_nospam at ramihyn dot sytes dot net Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 1078044800 (LWP 21090)] zend_std_write_property (object=0xbfffefe0, member=0x860ed50, value=0x860424c) at /usr/src/php-5.1.2/Zend/zend_object_handlers.c:374 374 property_info = zend_get_property_info(zobj->ce, member, (zobj->ce->__set != NULL) TSRMLS_CC); (gdb) bt #0 zend_std_write_property (object=0xbfffefe0, member=0x860ed50, value=0x860424c) at /usr/src/php-5.1.2/Zend/zend_object_handlers.c:374 #1 0x082e2e5a in zend_assign_to_object (result=0x860ed24, object_ptr=0x8524c5c, op2=0x2, value_op=0x860ed84, Ts=0xbfffec9c, opcode=136) at /usr/src/php-5.1.2/Zend/zend_execute.c:607 #2 0x082bdfc9 in ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_HANDLER (execute_data=0xbfffecd0) at zend_vm_execute.h:14644 #3 0x08299068 in execute (op_array=0x8610024) at zend_vm_execute.h:92 #4 0x08299531 in zend_do_fcall_common_helper_SPEC (execute_data=0xbfffede0) at zend_vm_execute.h:226 #5 0x08299068 in execute (op_array=0x860f474) at zend_vm_execute.h:92 #6 0x08276439 in zend_call_function (fci=0xbfffef50, fci_cache=0xbfffef30) at /usr/src/php-5.1.2/Zend/zend_execute_API.c:907 #7 0x082906e1 in zend_call_method (object_pp=0xbfffefdc, obj_ce=0x860ee64, fn_proxy=0x860ef54, function_name=0x8481e5f "__destruct", function_name_len=10, retval_ptr_ptr=0x0, param_count=2, arg1=0x0, arg2=0x0) at /usr/src/php-5.1.2/Zend/zend_interfaces.c:88 #8 0x08294cc9 in zend_objects_destroy_object (object=0x860eba4, handle=2) at /usr/src/php-5.1.2/Zend/zend_objects.c:78 #9 0x0829758d in zend_objects_store_call_destructors (objects=0x8524d1c) at /usr/src/php-5.1.2/Zend/zend_objects_API.c:55 #10 0x08275105 in shutdown_destructors () at /usr/src/php-5.1.2/Zend/zend_execute_API.c:191 #11 0x0827f9ca in zend_call_destructors () at /usr/src/php-5.1.2/Zend/zend.c:831 #12 0x082459c4 in php_request_shutdown (dummy=0x0) at /usr/src/php-5.1.2/main/main.c:1253 #13 0x082e4b20 in main (argc=2, argv=0xbffffae4) at /usr/src/php-5.1.2/sapi/cli/php_cli.c:1230 ------------------------------------------------------------------------ [2006-01-14 01:34:05] php_nospam at ramihyn dot sytes dot net Verified this bug with all 5.0.x and 5.1.x versions on both OS (except 5.1.2 on Debian; currently compiling for a backtrace) ------------------------------------------------------------------------ [2006-01-14 01:19:08] [EMAIL PROTECTED] Dmitry, please check it out. Looks like a chicken-and-egg problem to me. ------------------------------------------------------------------------ [2006-01-14 01:13:32] php_nospam at ramihyn dot sytes dot net Description: ------------ segfault caused by setting properties to null in __destruct() Reproduce code: --------------- <?php class Person { public $dad; public function __destruct() { $this->dad = null; /* no segfault if this is commented out */ } } class Dad extends Person { public $son; public function __construct() { $this->son = new Person; $this->son->dad = $this; /* no segfault if this is commented out */ } public function __destruct() { $this->son = null; parent::__destruct(); /* segfault here */ } } $o = new Dad; unset($o); ?> Expected result: ---------------- No segfault Actual result: -------------- PHP crashes due to a segfault (crashes apache worker thread when running as apache module) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=36006&edit=1