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] [email protected]
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