|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2013-01-04 21:41 UTC] 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 ()
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sat Oct 25 08:00:01 2025 UTC |
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'"); } } ?>