Bug #63907 [Fbk->Opn]: SegFault

From: Date: Wed, 09 Jan 2013 23:11:11 +0000
Subject: Bug #63907 [Fbk->Opn]: SegFault
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-175915@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=63907&edit=1 ID: 63907 User updated by: anilvarghese25 at gmail dot com Reported by: anilvarghese25 at gmail dot com Summary: SegFault -Status: Feedback +Status: Open Type: Bug Package: *General Issues Operating System: Linux PHP Version: 5.4.10 Block user comment: N Private report: N New Comment: This might not be very helpful. But it looks like bad apc caching. I was able to narrow it down to the following code. Its part of the Zend Framework. If I force an opcode recache, it works fine. I am using APC 3.1.14. <?php class Zend_Filter extends Zend_Filter_Interface { public static function get($value, $classBaseName, array $args = array(), $namespaces = array()) { $namespaces = array_merge(array('Zend_Filter'), (array) $namespaces); foreach ($namespaces as $namespace) { $className = $namespace . '_' . ucfirst($classBaseName); $class = new ReflectionClass($className); if ($class->implementsInterface('Zend_Filter_Interface')) { if ($class->hasMethod('__construct')) { $object = $class->newInstanceArgs($args); } else { $object = $class->newInstance(); } return $object->filter($value); } } throw new Zend_Filter_Exception("Filter class not found from basename '$classBaseName'"); } } ?> Previous Comments: ------------------------------------------------------------------------ [2013-01-04 22:00:58] pierrick@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. ------------------------------------------------------------------------ [2013-01-04 21:41:52] anilvarghese25 at gmail dot com Description: ------------ Apache process crashes with a segfault. Was able to narrow it down to zend_vm_execute.h line 580 using the backtrace. Looks like fbc->common.fn_flags in the code is causing the issue. if (UNEXPECTED((fbc->common.fn_flags & (ZEND_ACC_ABSTRACT|ZEND_ACC_DEPRECATED)) != 0)) { if (UNEXPECTED((fbc->common.fn_flags & ZEND_ACC_ABSTRACT) != 0)) { zend_error_noreturn(E_ERROR, "Cannot call abstract method %s::%s()", fbc->common.scope->name, fbc->common.function_name); CHECK_EXCEPTION(); ZEND_VM_NEXT_OPCODE(); } if (UNEXPECTED((fbc->common.fn_flags & ZEND_ACC_DEPRECATED) != 0)) { zend_error(E_DEPRECATED, "Function %s%s%s() is deprecated", fbc->common.scope ? fbc->common.scope->name : "", fbc->common.scope ? "::" : "", fbc->common.function_name); } } Actual result: -------------- Program received signal SIGSEGV, Segmentation fault. 0x00002aaab3d80b87 in zend_do_fcall_common_helper_SPEC (execute_data=0x2aaab8574288) at /tmp/php-5.4.10/Zend/zend_vm_execute.h:580 580 if (UNEXPECTED((fbc->common.fn_flags & (ZEND_ACC_ABSTRACT|ZEND_ACC_DEPRECATED)) != 0)) { (gdb) bt #0 0x00002aaab3d80b87 in zend_do_fcall_common_helper_SPEC (execute_data=0x2aaab8574288) at /tmp/php-5.4.10/Zend/zend_vm_execute.h:580 #1 0x00002aaab3d893fc in ZEND_DO_FCALL_SPEC_CONST_HANDLER (execute_data=0x2aaab8574288) at /tmp/php-5.4.10/Zend/zend_vm_execute.h:2235 #2 0x00002aaab3d7fb1e in execute (op_array=0x2aaaed5fc150) at /tmp/php- 5.4.10/Zend/zend_vm_execute.h:410 #3 0x00002aaab3d417d4 in zend_execute_scripts (type=8, retval=0x0, file_count=3) at /tmp/php-5.4.10/Zend/zend.c:1309 #4 0x00002aaab3ca9006 in php_execute_script (primary_file=0x7fffffffe430) at /tmp/php-5.4.10/main/main.c:2482 #5 0x00002aaab3e970e7 in php_handler (r=0x2aaaecd91ff0) at /tmp/php- 5.4.10/sapi/apache2handler/sapi_apache2.c:667 #6 0x00002aaaaaad4d1a in ap_run_handler () #7 0x00002aaaaaad81a8 in ap_invoke_handler () #8 0x00002aaaaaae2ca8 in ap_process_request () #9 0x00002aaaaaadfee0 in ?? () #10 0x00002aaaaaadbfa2 in ap_run_process_connection () #11 0x00002aaaaaae70d9 in ?? () #12 0x00002aaaaaae72d9 in ?? () #13 0x00002aaaaaae7df7 in ap_mpm_run () #14 0x00002aaaaaac1fd8 in main () ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=63907&edit=1

« previous php.bugs (#175915) next »