Edit report at http://bugs.php.net/bug.php?id=52518&edit=1
ID: 52518 Updated by: fel...@php.net Reported by: correo at sevein dot com Summary: Segfault in /Zend/zend_objects_API.c:230 -Status: Open +Status: Feedback Type: Bug Package: Reproducible crash Operating System: Linux/Windows PHP Version: 5.3.3 Block user comment: N Private report: N New Comment: Please try using this snapshot: http://snaps.php.net/php5.3-latest.tar.gz For Windows: http://windows.php.net/snapshots/ Previous Comments: ------------------------------------------------------------------------ [2010-08-07 12:48:09] correo at sevein dot com I continue investigating this issue. I ran valgrind to complete this report and got this: ==1994== Invalid read of size 4 ==1994== at 0x701E1C: zend_objects_store_del_ref_by_handle_ex (zend_objects_API.c:230) ==1994== by 0x701F62: zend_objects_store_del_ref (zend_objects_API.c:172) ==1994== by 0x6D4B04: _zval_ptr_dtor (zend_variables.h:35) ==1994== by 0x6EC4CA: zend_hash_destroy (zend_hash.c:526) ==1994== by 0x6FE5F8: zend_object_std_dtor (zend_objects.c:45) ==1994== by 0x6FE618: zend_objects_free_object_storage (zend_objects.c:128) ==1994== by 0x701F49: zend_objects_store_del_ref_by_handle_ex (zend_objects_API.c:220) ==1994== by 0x701F62: zend_objects_store_del_ref (zend_objects_API.c:172) ==1994== by 0x75AE41: ZEND_ASSIGN_SPEC_CV_CONST_HANDLER (zend_execute.c:691) ==1994== by 0x704927: execute (zend_vm_execute.h:107) ==1994== by 0x6E0179: zend_execute_scripts (zend.c:1194) ==1994== by 0x68F8CC: php_execute_script (main.c:2260) ==1994== by 0x76638D: main (php_cli.c:1192) ==1994== Address 0x10611c30 is 1,014,768 bytes inside a block of size 1,048,576 free'd ==1994== at 0x4C285A2: realloc (vg_replace_malloc.c:525) ==1994== by 0x702080: zend_objects_store_put (zend_objects_API.c:113) ==1994== by 0x6FE2C7: zend_objects_new (zend_objects.c:138) ==1994== by 0x6E86F2: _object_and_properties_init (zend_API.c:1079) ==1994== by 0x709168: ZEND_NEW_SPEC_HANDLER (zend_vm_execute.h:476) ==1994== by 0x704927: execute (zend_vm_execute.h:107) ==1994== by 0x6D6D03: zend_call_function (zend_execute_API.c:963) ==1994== by 0x6F5F4E: zend_call_method (zend_interfaces.c:97) ==1994== by 0x6FE4DE: zend_objects_destroy_object (zend_objects.c:113) ==1994== by 0x701F30: zend_objects_store_del_ref_by_handle_ex (zend_objects_API.c:206) ==1994== by 0x701F62: zend_objects_store_del_ref (zend_objects_API.c:172) ==1994== by 0x6D4B04: _zval_ptr_dtor (zend_variables.h:35) ==1994== by 0x6EC4CA: zend_hash_destroy (zend_hash.c:526) ==1994== by 0x6FE5F8: zend_object_std_dtor (zend_objects.c:45) ==1994== by 0x6FE618: zend_objects_free_object_storage (zend_objects.c:128) ==1994== by 0x701F49: zend_objects_store_del_ref_by_handle_ex (zend_objects_API.c:220) ==1994== by 0x701F62: zend_objects_store_del_ref (zend_objects_API.c:172) ==1994== by 0x6D4B04: _zval_ptr_dtor (zend_variables.h:35) ==1994== by 0x6EC4CA: zend_hash_destroy (zend_hash.c:526) ==1994== by 0x6FE5F8: zend_object_std_dtor (zend_objects.c:45) ==1994== by 0x6FE618: zend_objects_free_object_storage (zend_objects.c:128) ==1994== by 0x701F49: zend_objects_store_del_ref_by_handle_ex (zend_objects_API.c:220) ==1994== by 0x701F62: zend_objects_store_del_ref (zend_objects_API.c:172) ==1994== by 0x75AE41: ZEND_ASSIGN_SPEC_CV_CONST_HANDLER (zend_execute.c:691) ==1994== by 0x704927: execute (zend_vm_execute.h:107) ==1994== by 0x6E0179: zend_execute_scripts (zend.c:1194) ==1994== by 0x68F8CC: php_execute_script (main.c:2260) ==1994== by 0x76638D: main (php_cli.c:1192) ==1994== ==1994== Invalid read of size 4 ==1994== at 0x701E1C: zend_objects_store_del_ref_by_handle_ex (zend_objects_API.c:230) ==1994== by 0x701F62: zend_objects_store_del_ref (zend_objects_API.c:172) ==1994== by 0x75AE41: ZEND_ASSIGN_SPEC_CV_CONST_HANDLER (zend_execute.c:691) ==1994== by 0x704927: execute (zend_vm_execute.h:107) ==1994== by 0x6E0179: zend_execute_scripts (zend.c:1194) ==1994== by 0x68F8CC: php_execute_script (main.c:2260) ==1994== by 0x76638D: main (php_cli.c:1192) ==1994== Address 0x106172f0 is 1,036,976 bytes inside a block of size 1,048,576 free'd ==1994== at 0x4C285A2: realloc (vg_replace_malloc.c:525) ==1994== by 0x702080: zend_objects_store_put (zend_objects_API.c:113) ==1994== by 0x6FE2C7: zend_objects_new (zend_objects.c:138) ==1994== by 0x6E86F2: _object_and_properties_init (zend_API.c:1079) ==1994== by 0x709168: ZEND_NEW_SPEC_HANDLER (zend_vm_execute.h:476) ==1994== by 0x704927: execute (zend_vm_execute.h:107) ==1994== by 0x6D6D03: zend_call_function (zend_execute_API.c:963) ==1994== by 0x6F5F4E: zend_call_method (zend_interfaces.c:97) ==1994== by 0x6FE4DE: zend_objects_destroy_object (zend_objects.c:113) ==1994== by 0x701F30: zend_objects_store_del_ref_by_handle_ex (zend_objects_API.c:206) ==1994== by 0x701F62: zend_objects_store_del_ref (zend_objects_API.c:172) ==1994== by 0x6D4B04: _zval_ptr_dtor (zend_variables.h:35) ==1994== by 0x6EC4CA: zend_hash_destroy (zend_hash.c:526) ==1994== by 0x6FE5F8: zend_object_std_dtor (zend_objects.c:45) ==1994== by 0x6FE618: zend_objects_free_object_storage (zend_objects.c:128) ==1994== by 0x701F49: zend_objects_store_del_ref_by_handle_ex (zend_objects_API.c:220) ==1994== by 0x701F62: zend_objects_store_del_ref (zend_objects_API.c:172) ==1994== by 0x6D4B04: _zval_ptr_dtor (zend_variables.h:35) ==1994== by 0x6EC4CA: zend_hash_destroy (zend_hash.c:526) ==1994== by 0x6FE5F8: zend_object_std_dtor (zend_objects.c:45) ==1994== by 0x6FE618: zend_objects_free_object_storage (zend_objects.c:128) ==1994== by 0x701F49: zend_objects_store_del_ref_by_handle_ex (zend_objects_API.c:220) ==1994== by 0x701F62: zend_objects_store_del_ref (zend_objects_API.c:172) ==1994== by 0x75AE41: ZEND_ASSIGN_SPEC_CV_CONST_HANDLER (zend_execute.c:691) ==1994== by 0x704927: execute (zend_vm_execute.h:107) ==1994== by 0x6E0179: zend_execute_scripts (zend.c:1194) ==1994== by 0x68F8CC: php_execute_script (main.c:2260) ==1994== by 0x76638D: main (php_cli.c:1192) ------------------------------------------------------------------------ [2010-08-05 03:41:32] fel...@php.net Thank you for this bug report. To properly diagnose the problem, we need a short but complete example script to be able to reproduce this bug ourselves. A proper reproducing script starts with <?php and ends with ?>, is max. 10-20 lines long and does not require any external resources such as databases, etc. If the script requires a database to demonstrate the issue, please make sure it creates all necessary tables, stored procedures etc. Please avoid embedding huge scripts into the report. ------------------------------------------------------------------------ [2010-08-02 19:12:54] correo at sevein dot com Description: ------------ A PHP process segfaults randomly when I try to build a complex search index with Symfony framework and Zend Lucene. Unfortunately, I can't figure out a short script to reproduce this problem. I can reproduce it with all PHP versions, included PHP 5.3.3. In debug mode, the problem occurs fastly (the index build can take many hours). This is how I compiled my PHP installation: ./configure \ --enable-dom \ --enable-libxml \ --with-xsl \ --enable-pdo \ --with-pdo-mysql \ --with-mysql \ --with-mysqli \ --enable-mbstring \ --enable-debug gdb: $ gdb /home/foobar/bin/php-5.3.3-debug ./core Core was generated by `/home/foobar/bin/php-5.3.3-debug -d memory_limit=1200M symfony search:populate Q'. Program terminated with signal 11, Segmentation fault. #0 0x000000000086d775 in zend_objects_store_del_ref_by_handle_ex (handle=16159, handlers=0x106b340) at /home/foobar/bin/php-5.3.3/Zend/zend_objects_API.c:230 230 obj->refcount--; (gdb) print obj $1 = (struct _store_object *) 0x7ffc9fc80838 (gdb) print obj->refcount Cannot access memory at address 0x7ffc9fc80860 The backtrack: (gdb) bt #0 0x000000000086d775 in zend_objects_store_del_ref_by_handle_ex (handle=16159, handlers=0x106b340) at /home/foobar/bin/php-5.3.3/Zend/zend_objects_API.c:230 #1 0x000000000086d477 in zend_objects_store_del_ref (zobject=0xd724c90) at /home/foobar/bin/php-5.3.3/Zend/zend_objects_API.c:172 #2 0x000000000083d822 in _zval_dtor_func (zvalue=0xd724c90, __zend_filename=0xdceb88 "/home/foobar/bin/php-5.3.3/Zend/zend_execute_API.c", __zend_lineno=443) at /home/foobar/bin/php-5.3.3/Zend/zend_variables.c:52 #3 0x000000000082d73a in _zval_dtor (zvalue=0xd724c90, __zend_filename=0xdceb88 "/home/foobar/bin/php-5.3.3/Zend/zend_execute_API.c", __zend_lineno=443) at /home/foobar/bin/php-5.3.3/Zend/zend_variables.h:35 #4 0x000000000082e6c8 in _zval_ptr_dtor (zval_ptr=0xddbaa00, __zend_filename=0xdd0400 "/home/foobar/bin/php-5.3.3/Zend/zend_variables.c", __zend_lineno=178) at /home/foobar/bin/php-5.3.3/Zend/zend_execute_API.c:443 #5 0x000000000083db9f in _zval_ptr_dtor_wrapper (zval_ptr=0xddbaa00) at /home/foobar/bin/php-5.3.3/Zend/zend_variables.c:178 #6 0x000000000084feb0 in zend_hash_destroy (ht=0xcba0578) at /home/foobar/bin/php-5.3.3/Zend/zend_hash.c:526 #7 0x0000000000868209 in zend_object_std_dtor (object=0xf2983f0) at /home/foobar/bin/php-5.3.3/Zend/zend_objects.c:45 #8 0x0000000000868585 in zend_objects_free_object_storage (object=0xf2983f0) at /home/foobar/bin/php-5.3.3/Zend/zend_objects.c:128 #9 0x000000000086d710 in zend_objects_store_del_ref_by_handle_ex (handle=16266, handlers=0x106b340) at /home/foobar/bin/php-5.3.3/Zend/zend_objects_API.c:220 #10 0x000000000086d477 in zend_objects_store_del_ref (zobject=0xe67c7b0) at /home/foobar/bin/php-5.3.3/Zend/zend_objects_API.c:172 #11 0x000000000083d822 in _zval_dtor_func (zvalue=0xe67c7b0, __zend_filename=0xdceb88 "/home/foobar/bin/php-5.3.3/Zend/zend_execute_API.c", __zend_lineno=443) at /home/foobar/bin/php-5.3.3/Zend/zend_variables.c:52 #12 0x000000000082d73a in _zval_dtor (zvalue=0xe67c7b0, __zend_filename=0xdceb88 "/home/foobar/bin/php-5.3.3/Zend/zend_execute_API.c", __zend_lineno=443) at /home/foobar/bin/php-5.3.3/Zend/zend_variables.h:35 #13 0x000000000082e6c8 in _zval_ptr_dtor (zval_ptr=0x7ffca2525c10, __zend_filename=0xdd6728 "/home/foobar/bin/php-5.3.3/Zend/zend_vm_execute.h", __zend_lineno=160) at /home/foobar/bin/php-5.3.3/Zend/zend_execute_API.c:443 #14 0x00000000008732da in zend_leave_helper_SPEC (execute_data=0x7ffca2525b38) at /home/foobar/bin/php-5.3.3/Zend/zend_vm_execute.h:160 #15 0x0000000000878335 in ZEND_RETURN_SPEC_CONST_HANDLER (execute_data=0x7ffca2525b38) at /home/foobar/bin/php- 5.3.3/Zend/zend_vm_execute.h:1686 #16 0x0000000000873131 in execute (op_array=0x33a0410) at /home/foobar/bin/php- 5.3.3/Zend/zend_vm_execute.h:107 #17 0x00000000008401ec in zend_execute_scripts (type=8, retval=0x0, file_count=3) at /home/foobar/bin/php-5.3.3/Zend/zend.c:1194 #18 0x00000000007ca328 in php_execute_script (primary_file=0x7fffd3b27230) at /home/foobar/bin/php-5.3.3/main/main.c:2260 #19 0x00000000009238a3 in main (argc=6, argv=0x7fffd3b27498) at /home/foobar/bin/php-5.3.3/sapi/cli/php_cli.c:1192 Test script: --------------- Unfortunately, I can't figure out a short script to reproduce this problem. Expected result: ---------------- The process should not segfault. Actual result: -------------- Segfault ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=52518&edit=1