Edit report at https://bugs.php.net/bug.php?id=64463&edit=1
ID: 64463 Comment by: julien at palard dot fr Reported by: julien at palard dot fr Summary: Segfault (For the moment, can't reproduce it) Status: Open Type: Bug Package: *General Issues Operating System: Debian 6.0.7 PHP Version: 5.4.13 Block user comment: N Private report: N New Comment: Same segfault, other stacktrace, don't think it help a lot : Program terminated with signal 11, Segmentation fault. #0 _zend_mm_alloc_int (heap=0x143a330, size=82) at /usr/src/php-5.4.13/Zend/zend_alloc.c:2016 2016 ZEND_MM_CHECK_BLOCK_LINKAGE(best_fit); (gdb) bt #0 _zend_mm_alloc_int (heap=0x143a330, size=82) at /usr/src/php-5.4.13/Zend/zend_alloc.c:2016 #1 0x0000000000691791 in _zend_hash_quick_add_or_update (ht=0x1675e18, arKey=0x7fc905b7fb50 "regexChar", nKeyLength=<value optimized out>, h=8246864001117707262, pData=0x1, nDataSize=8, pDest=0x7fc9207513a8, flag=1) at /usr/src/php-5.4.13/Zend/zend_hash.c:330 #2 0x00000000006a9948 in _get_zval_cv_lookup_BP_VAR_W (ptr=0x7fc9207513a8, var=<value optimized out>) at /usr/src/php-5.4.13/Zend/zend_execute.c:281 #3 0x000000000070557a in _get_zval_ptr_ptr_cv_BP_VAR_W (execute_data=0x7fc9207512c8) at /usr/src/php-5.4.13/Zend/zend_execute.c:442 #4 ZEND_ASSIGN_SPEC_CV_VAR_HANDLER (execute_data=0x7fc9207512c8) at /usr/src/php-5.4.13/Zend/zend_vm_execute.h:33048 #5 0x00000000006e8990 in execute (op_array=0x1a22840) at /usr/src/php-5.4.13/Zend/zend_vm_execute.h:410 #6 0x0000000000676473 in zend_call_function (fci=0x7fff3c616460, fci_cache=<value optimized out>) at /usr/src/php-5.4.13/Zend/zend_execute_API.c:958 #7 0x000000000055bf1a in zim_reflection_method_invokeArgs (ht=<value optimized out>, return_value=0x166df40, return_value_ptr=<value optimized out>, this_ptr=<value optimized out>, return_value_used=<value optimized out>) at /usr/src/php-5.4.13/ext/reflection/php_reflection.c:3017 #8 0x00000000006fb5dc in zend_do_fcall_common_helper_SPEC (execute_data=0x7fc92074d7f8) at /usr/src/php-5.4.13/Zend/zend_vm_execute.h:642 #9 0x00000000006e8990 in execute (op_array=0x17b52b0) at /usr/src/php-5.4.13/Zend/zend_vm_execute.h:410 #10 0x0000000000681d9e in zend_execute_scripts (type=8, retval=<value optimized out>, file_count=3) at /usr/src/php-5.4.13/Zend/zend.c:1315 #11 0x000000000062746e in php_execute_script (primary_file=<value optimized out>) at /usr/src/php-5.4.13/main/main.c:2492 #12 0x0000000000730fda in main (argc=<value optimized out>, argv=<value optimized out>) at /usr/src/php-5.4.13/sapi/fpm/fpm/fpm_main.c:1924 (gdb) list 2021 2022 remaining_size = block_size - true_size; 2023 2024 if (remaining_size < ZEND_MM_ALIGNED_MIN_HEADER_SIZE) { 2025 true_size = block_size; 2026 ZEND_MM_BLOCK(best_fit, ZEND_MM_USED_BLOCK, true_size); 2027 } else { 2028 zend_mm_free_block *new_free_block; 2029 2030 /* prepare new free block */ (gdb) p *best_fit->info._prev Cannot access memory at address 0x64696c61766e49 Same as the last, seems ASCII data instead of memory pointer : $ echo $'\x64\x69\x6c\x61\x76\x6e\x49' dilavnI Previous Comments: ------------------------------------------------------------------------ [2013-03-20 14:44:59] julien at palard dot fr Description: ------------ I got a chance of 0.018% of segfaulting in my current setup, can't reproduce it for the moment. But I got a stacktrace ! :-) gdb /usr/local/php-current/sbin/php-fpm ./core.php-fpm.9958 list 2105 mm_block = ZEND_MM_PREV_BLOCK(mm_block); 2106 zend_mm_remove_from_free_list(heap, (zend_mm_free_block *) mm_block); 2107 size += ZEND_MM_FREE_BLOCK_SIZE(mm_block); 2108 } 2109 if (ZEND_MM_IS_FIRST_BLOCK(mm_block) && 2110 ZEND_MM_IS_GUARD_BLOCK(ZEND_MM_BLOCK_AT(mm_block, size))) { 2111 zend_mm_del_segment(heap, (zend_mm_segment *) ((char *)mm_block - ZEND_MM_ALIGNED_SEGMENT_SIZE)); 2112 } else { 2113 ZEND_MM_BLOCK(mm_block, ZEND_MM_FREE_BLOCK, size); 2114 zend_mm_add_to_free_list(heap, (zend_mm_free_block *) mm_block); (gdb) bt #0 _zend_mm_free_int (heap=0x143a330, p=0x1b15518) at /usr/src/php-5.4.13/Zend/zend_alloc.c:2100 #1 0x000000000068ef1b in zend_hash_destroy (ht=0x1700318) at /usr/src/php-5.4.13/Zend/zend_hash.c:560 #2 0x00000000006a2ffc in zend_object_std_dtor (object=0x168a238) at /usr/src/php-5.4.13/Zend/zend_objects.c:44 #3 0x00000000006a3089 in zend_objects_free_object_storage (object=0x143a330) at /usr/src/php-5.4.13/Zend/zend_objects.c:137 #4 0x00000000006a87ca in zend_objects_store_free_object_storage (objects=0xe2d3c0) at /usr/src/php-5.4.13/Zend/zend_objects_API.c:92 #5 0x0000000000677f9a in shutdown_executor () at /usr/src/php-5.4.13/Zend/zend_execute_API.c:297 #6 0x0000000000682c93 in zend_deactivate () at /usr/src/php-5.4.13/Zend/zend.c:938 #7 0x0000000000627e0f in php_request_shutdown (dummy=<value optimized out>) at /usr/src/php-5.4.13/main/main.c:1800 #8 0x0000000000730c63 in main (argc=<value optimized out>, argv=<value optimized out>) at /usr/src/php-5.4.13/sapi/fpm/fpm/fpm_main.c:1952 (gdb) p *next_block Cannot access memory at address 0x656d616e7624c470 (gdb) print next_block $7 = (zend_mm_block *) 0x656d616e7624c470 Pointer strangely look like ASCII / UTF8 data, but .. don't know, dropping it here, if it can help : $ echo $'\x65\x6d\x61\x6e\x76\x24\xc4\x70' emanv$�p Expected result: ---------------- No Segfault :) Actual result: -------------- Segfault ): ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=64463&edit=1