Edit report at https://bugs.php.net/bug.php?id=62358&edit=1
ID: 62358
Comment by: maciej dot sz at gmail dot com
Reported by: maciej dot sz at gmail dot com
Summary: Segfault when using traits a lot
Status: Assigned
Type: Bug
Package: Reproducible crash
Operating System: Linux 3.2.0-25-generic Ubuntu
PHP Version: 5.4.4
Assigned To: laruence
Block user comment: N
Private report: N
New Comment:
Program received signal SIGSEGV, Segmentation fault.
0x000000000094e37d in zend_get_function_declaration (fptr=0x1a6f7a0)
at /home/maciek/Downloads/php-5.4.6RC1/Zend/zend_compile.c:3052
3052 memcpy(offset, fptr->common.scope->name, fptr->common.scope->name_length);
(gdb) bt
#0 0x000000000094e37d in zend_get_function_declaration (fptr=0x1a6f7a0)
at /home/maciek/Downloads/php-5.4.6RC1/Zend/zend_compile.c:3052
#1 0x000000000094f37b in do_inheritance_check_on_method (child=0x1ab5d00, parent=0x1a7edb0)
at /home/maciek/Downloads/php-5.4.6RC1/Zend/zend_compile.c:3263
(...)
(gdb) frame 1
#1 0x000000000094f37b in do_inheritance_check_on_method (child=0x1ab5d00, parent=0x1a7edb0)
at /home/maciek/Downloads/php-5.4.6RC1/Zend/zend_compile.c:3263
3263 zend_error(E_COMPILE_ERROR, "Declaration of %s::%s() must be compatible with %s",
ZEND_FN_SCOPE_NAME(child), child->common.function_name,
zend_get_function_declaration(child->common.prototype? child->common.prototype : parent
TSRMLS_CC));
(gdb) p *child
$1 = {type = 2 '\002', common = {type = 2 '\002', function_name = 0x1ab5af0
"addTlItem",
scope = 0x1ab5760, fn_flags = 134283520, prototype = 0x1a6f7a0, num_args = 1, required_num_args
= 1,
arg_info = 0x1ab6100}, op_array = {type = 2 '\002', function_name = 0x1ab5af0
"addTlItem",
scope = 0x1ab5760, fn_flags = 134283520, prototype = 0x1a6f7a0, num_args = 1, required_num_args
= 1,
arg_info = 0x1ab6100, refcount = 0x1a7c650, opcodes = 0x1ad5ad8, last = 35, vars = 0x1ab5ea8,
last_var = 7, T = 22, brk_cont_array = 0x19ffa18, last_brk_cont = 1, try_catch_array = 0x0,
last_try_catch = 0, static_variables = 0x0, this_var = 6,
filename = 0x7ffff01935c0 "/usr/share/php/PHPUnit/Framework/MockObject/Generator.php(218) :
eval()'d code", line_start = 11, line_end = 31, doc_comment = 0x0, doc_comment_len = 0,
early_binding = 4294967295, literals = 0x1ab6298, last_literal = 16, run_time_cache = 0x0,
last_cache_slot = 7, reserved = {0x0, 0x0, 0x0, 0x0}}, internal_function = {type = 2
'\002',
function_name = 0x1ab5af0 "addTlItem", scope = 0x1ab5760, fn_flags = 134283520,
prototype = 0x1a6f7a0, num_args = 1, required_num_args = 1, arg_info = 0x1ab6100,
handler = 0x1a7c650, module = 0x1ad5ad8}}
(gdb) p *parent
$2 = {type = 2 '\002', common = {type = 2 '\002', function_name = 0x1a83f80
"addTlItem",
scope = 0x1a635c8, fn_flags = 134283528, prototype = 0x1a6f7a0, num_args = 1, required_num_args
= 1,
arg_info = 0x1a84338}, op_array = {type = 2 '\002', function_name = 0x1a83f80
"addTlItem",
scope = 0x1a635c8, fn_flags = 134283528, prototype = 0x1a6f7a0, num_args = 1, required_num_args
= 1,
arg_info = 0x1a84338, refcount = 0x1a85760, opcodes = 0x1a882a8, last = 25, vars = 0x1a87810,
last_var = 3, T = 16, brk_cont_array = 0x0, last_brk_cont = 0, try_catch_array = 0x0,
last_try_catch = 0, static_variables = 0x0, this_var = 2,
filename = 0x1a6f0e0 "/home/www/workspace/oxio-framework/core/oxio/tl/TElement.php",
line_start = 248, line_end = 260,
doc_comment = 0x19eb7b0 "/**\n * Adds a translation item.\n *\n * @param Item
$TlItem\n * @return IElement Self instance.\n * @throws
\\oxio\\frame\\exc\\EElementAlreadyExists When an item of given\n * part name"...,
doc_comment_len = 224, early_binding = 4294967295,
literals = 0x1a893e8, last_literal = 17, run_time_cache = 0x0, last_cache_slot = 9, reserved =
{0x0,
0x0, 0x0, 0x0}}, internal_function = {type = 2 '\002', function_name = 0x1a83f80
"addTlItem",
scope = 0x1a635c8, fn_flags = 134283528, prototype = 0x1a6f7a0, num_args = 1, required_num_args
= 1,
arg_info = 0x1a84338, handler = 0x1a85760, module = 0x1a882a8}}
Previous Comments:
------------------------------------------------------------------------
[2012-08-20 15:16:25] laruence@php.net
thanks, btw, from the backtrace seems you are playing with reflection ext, but the
test script you provide doesn't
so, could you please provide us the exact test script you use? thanks
------------------------------------------------------------------------
[2012-08-20 15:12:32] maciej dot sz at gmail dot com
I could, until I restarted computer to check if it's still there... Now it crashes running from
bash, but not from gdb console. I'll get back to you as soon as it occur again.
------------------------------------------------------------------------
[2012-08-20 14:58:29] laruence@php.net
if yes, could you please also print the child and parent out in frame 1 ? it will
be very helpful..
thanks
------------------------------------------------------------------------
[2012-08-20 14:52:38] laruence@php.net
you can reproduce this in 100% chance?
------------------------------------------------------------------------
[2012-08-20 14:48:30] maciej dot sz at gmail dot com
Nope, no cache, not even Xdebug nor Zend debug. Pure PHP compiled with following configuration:
'./configure' '--with-mysql' '--with-pgsql' '--with-zlib'
'--enable-calendar' '--with-curl' '--with-jpeg-dir=/usr'
'--with-png-dir=/usr' '--with-gd' '--enable-bcmath'
'--enable-soap' '--with-pdo-mysql' '--with-pdo-pgsql'
'--with-pdo-sqlite' '--with-config-file-path=/usr/local/php54/etc'
'--with-config-file-scan-dir=/usr/local/php54/etc/conf.d'
'--prefix=/usr/local/php54' '--enable-debug' '--with-mysqli'
'--enable-mbstring' '--enable-fpm'
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=62358
--
Edit this bug report at https://bugs.php.net/bug.php?id=62358&edit=1