Edit report at https://bugs.php.net/bug.php?id=64966&edit=1
ID: 64966
Updated by: laruence@php.net
Reported by: bfrance@php.net
Summary: reflection_method_invokeArgs core dump
Status: Open
Type: Bug
Package: Scripting Engine problem
PHP Version: Irrelevant
Block user comment: N
Private report: N
New Comment:
where can I get the "results.xml"?
Previous Comments:
------------------------------------------------------------------------
[2013-06-07 16:40:04] bfrance@php.net
Sorry, this is for work and I am pretty sure the wouldn't let me give you access to a internal
machine.
See if this helps:
sudo pear config-set auto_discover 1
sudo pear channel-discover pear.phpunit.de
sudo pear install pear.phpunit.de/PHPUnit
That worked for me for two clean installs this morning (5.4.13 and 5.4.14). So I think have figured
out what is happening, at least with 5.4 and why it changed.
Code in question is this:
http://git.php.net/?p=php-src.git;a=blob;f=Zend/zend_vm_execute.h;h=bb50b4803f7143acff1c15647f5f45807d7ced16;hb=HEAD#l525
I can't figure out how to get git to let me show 5.3.13 and 5.2.14 diff, so here is a clean
diff:
http://www.brianfrance.com/php/5.4.14.txt
The issue in 5.4.14 is that zend_verify_arg_type is throwing an exception, this means that the real
function will never be called as it is now wrapped in a:
if (EXPECTED(EG(exception) == NULL)) {
}
In 5.4.13 there wasn't an exception check, so it would call the function regardless of the
zend_verify_arg_type checks (would still have a warning printed).
If this is now the normal flow, I can go back to the intl our team and tell them they need to fix
there test cases (in 5.4).
Granted this doesn't fix 5.3 core dump, which is what I am digging into again today.
------------------------------------------------------------------------
[2013-06-07 15:58:24] laruence@php.net
is there any chance you can give me a access to your box?
I get some problems to setup the PHPUNIT here
------------------------------------------------------------------------
[2013-06-07 15:02:40] bfrance@php.net
Just to give another update, 5.4.13 works!!!!
------ 5.4.13 ------
% php -dopen_basedir= /usr/local/bin/phpunit --log-junit results.xml phpIntlTest02.php
PHPUnit 3.7.21 by Sebastian Bergmann.
.
Time: 0 seconds, Memory: 2.50Mb
OK (1 test, 116 assertions)
------
Where 5.4.14 fails:
------ 5.4.14 ------
& php -dopen_basedir= /usr/local/bin/phpunit --log-junit results.xml phpIntlTest02.php
PHPUnit 3.7.21 by Sebastian Bergmann.
F
Time: 0 seconds, Memory: 3.50Mb
There was 1 failure:
1) YPHPINTLTest::test_collator_sort
Wrong type of arguments
Failed asserting that two strings are equal.
--- Expected
+++ Actual
@@ @@
-'collator_sort_internal: unable to parse input params: U_ILLEGAL_ARGUMENT_ERROR'
+'U_USING_FALLBACK_WARNING'
/home/bfrance/php-5.4.14/ext/intl/tests/phpIntlTest02.php:33
FAILURES!
Tests: 1, Assertions: 2, Failures: 1.
------
So while 5.4 doesn't core dump, that patch from 63914 really changed the execution path to the
point it breaks the test.
------------------------------------------------------------------------
[2013-06-04 16:43:17] bfrance@php.net
#0 _zval_ptr_dtor (zval_ptr=0x7ffff7ebfe70) at php-5.3.24/Zend/zend_execute_API.c:441
zv = 0x600000000
#1 0x00000000007038a6 in zend_do_fcall_common_helper_SPEC (execute_data=0x7ffff7ebfa98) at
php-5.3.24/Zend/zend_vm_execute.h:418
opline = <value optimized out>
should_change_scope = 3 '\003'
#2 0x00000000006dc948 in execute (op_array=0xfb6510) at php-5.3.24/Zend/zend_vm_execute.h:107
ret = <value optimized out>
execute_data = 0x7ffff7ebfa98
nested = 1 '\001'
original_in_execution = 1 '\001'
#3 0x00000000006ae1b0 in zend_call_function (fci=0x7fffffffaaa0, fci_cache=<value optimized
out>) at php-5.3.24/Zend/zend_execute_API.c:969
i = <value optimized out>
original_return_value = 0x7ffff7ebdc60
calling_symbol_table = 0x0
original_op_array = 0x10f1548
original_opline_ptr = 0x7ffff7ebed68
current_scope = 0x0
current_called_scope = 0xe67b90
calling_scope = 0x115e0a8
called_scope = <value optimized out>
current_this = 0x115e0a8
execute_data = {opline = 0x0, function_state = {function = 0xfb6510, arguments =
0x7ffff7ebfa90}, fbc = 0x0, called_scope = 0x0, op_array = 0x0, object = 0x1191d08, Ts =
0x7ffff7ebee70, CVs = 0x7ffff7ebee00,
symbol_table = 0x0, prev_execute_data = 0x7ffff7ebed68, old_error_reporting = 0x0, nested
= 1 '\001', original_return_value = 0x0, current_scope = 0xfb84e0, current_called_scope =
0xfb60c8, current_this = 0x1191d08,
current_object = 0x0, call_opline = 0xfe1e98}
#4 0x0000000000583a8a in zim_reflection_method_invokeArgs (ht=<value optimized out>,
return_value=0x115deb8, return_value_ptr=<value optimized out>, this_ptr=<value optimized
out>, return_value_used=<value optimized out>)
at php-5.3.24/ext/reflection/php_reflection.c:2753
retval_ptr = <value optimized out>
params = 0x123a3a8
object = 0x1191d08
intern = 0x1166fe0
mptr = 0xfb6510
argc = 0
result = <value optimized out>
fci = {size = 72, function_table = 0x0, function_name = 0x0, symbol_table = 0x0,
retval_ptr_ptr = 0x7fffffffab38, param_count = 0, params = 0x123a3a8, object_ptr = 0x1191d08,
no_separation = 1 '\001'}
fcc = {initialized = 1 '\001', function_handler = 0xfb6510, calling_scope =
0xfb60c8, called_scope = 0xfb60c8, object_ptr = 0x1191d08}
obj_ce = 0xfb60c8
param_array = 0x115de58
#5 0x0000000000703d37 in zend_do_fcall_common_helper_SPEC (execute_data=0x7ffff7ebed68) at
php-5.3.24/Zend/zend_vm_execute.h:322
opline = <value optimized out>
should_change_scope = 1 '\001'
#6 0x00000000006dc948 in execute (op_array=0x10f1548) at php-5.3.24/Zend/zend_vm_execute.h:107
ret = <value optimized out>
execute_data = 0x7ffff7ebed68
nested = 1 '\001'
original_in_execution = 0 '\000'
#7 0x00000000006b758a in zend_execute_scripts (type=8, retval=0x0, file_count=3) at
php-5.3.24/Zend/zend.c:1259
files = {{gp_offset = 40, fp_offset = 0, overflow_arg_area = 0x7fffffffad50, reg_save_area =
0x7ffffffface0}}
i = <value optimized out>
file_handle = 0x7fffffffe160
orig_op_array = 0x0
orig_retval_ptr_ptr = 0x0
#8 0x0000000000666ace in php_execute_script (primary_file=0x7fffffffe160) at
php-5.3.24/main/main.c:2316
realfile = "/usr/local/bin/phpunit\000\000\210\341\377\367\377\177",
'\000' <repeats 42 times>"\340,
\344\377\367\377\177\000\000p\276\377\377\377\177\000\000\000\000\000\000\000\000\000\000Xù\364\377\177\000\000\230\331\374\367\377\177\000\000\000\000\000\000\000\000\000\000\377\377\377\377",
'\000' <repeats 12 times>, "\001\000\000\000\000\000\000\000p^\317",
'\000' <repeats 13 times>"\213, \322\321\000\000\000\000\000\r",
'\000' <repeats 15 times>, "ï\336\367\377\177\000\000\001",
'\000' <repeats 23 times>,
"Xù\364\377\177\000\000\210\343\271\364\377\177\000\000\270\356\317\000\000\000\000\000@\317\377\377\377\177\000\000p\374\317\000\000\000\000\000\r\000\000\000\000\000\000\000\225\026\337\367\377\177\000\000\002\000\000\000\000\000\000\000`\201\322\000\000\000\000\000\034\000\000\000\000\000\000\000\200\355\206\353\326O9\253\200g\362\364\377\177\000\000\000\000\000\000\000\000\000\000\200g\362\364\377\177"...
__orig_bailout = 0x7fffffffdff0
__bailout = {{__jmpbuf = {15446400, 1175243881897479723, 140737488348848, 0,
140737488348136, 0, 1175243883034136107, -1175244725073261013}, __mask_was_saved = 0, __saved_mask =
{__val = {229440404087961, 0, 140737299689793,
48, 13753520, 15725344, 7103285, 532575944752, 7, 140737488342704, 153, 7,
140737488342704, 0, 15725216, 0}}}}
prepend_file_p = <value optimized out>
append_file_p = 0x0
prepend_file = {type = ZEND_HANDLE_FILENAME, filename = 0x0, opened_path = 0x0, handle = {fd
= 0, fp = 0x0, stream = {handle = 0x0, isatty = 0, mmap = {len = 0, pos = 0, map = 0x0, buf = 0x0,
old_handle = 0x0, old_closer = 0},
reader = 0, fsizer = 0, closer = 0}}, free_filename = 0 '\000'}
append_file = {type = ZEND_HANDLE_FILENAME, filename = 0x0, opened_path = 0x0, handle = {fd
= 0, fp = 0x0, stream = {handle = 0x0, isatty = 0, mmap = {len = 0, pos = 0, map = 0x0, buf = 0x0,
old_handle = 0x0, old_closer = 0},
reader = 0, fsizer = 0, closer = 0}}, free_filename = 0 '\000'}
old_cwd = 0x7fffffffad60 ""
use_heap = 0 '\000'
retval = 0
#9 0x000000000073de34 in main (argc=6, argv=0x7fffffffe3d8) at php-5.3.24/sapi/cli/php_cli.c:1189
__orig_bailout = 0x0
__bailout = {{__jmpbuf = {124, -1175245194508153301, 13630576, 13, 13750923, 13,
1175243881899576875, -1175244831334248917}, __mask_was_saved = 0, __saved_mask = {__val =
{140737351936935, 4294967455, 11341735, 45,
140737299199672, 0, 140737488347696, 140737299205192, 140737299224056, 1910330751,
140737351934614, 0, 140737488347456, 140733193388095, 140737488347456, 19}}}}
exit_status = 0
c = <value optimized out>
file_handle = {type = ZEND_HANDLE_MAPPED, filename = 0x7fffffffe6b0
"/usr/local/bin/phpunit", opened_path = 0x0, handle = {fd = 15570712, fp = 0xed9718,
stream = {handle = 0xed9718, isatty = 0, mmap = {len = 2028, pos = 0,
map = 0x7ffff7eb2000, buf = 0x7ffff7eb2015 <Address 0x7ffff7eb2015 out of
bounds>, old_handle = 0xefee50, old_closer = 0x6cc460 <zend_stream_stdio_closer>}, reader =
0x6cca60 <zend_stream_stdio_reader>,
fsizer = 0x6cc990 <zend_stream_stdio_fsizer>, closer = 0x6cc9e0
<zend_stream_mmap_closer>}}, free_filename = 0 '\000'}
behavior = 1
reflection_what = 0x0
orig_optind = 1
orig_optarg = 0x0
arg_free = <value optimized out>
arg_excp = <value optimized out>
script_file = <value optimized out>
translated_path = 0xebb180 "/usr/local/bin/phpunit"
interactive = <value optimized out>
module_started = 1
request_started = 1
lineno = 2
exec_direct = 0x0
exec_run = <value optimized out>
exec_begin = 0x0
exec_end = 0x0
param_error = <value optimized out>
hide_argv = 0
ini_entries_len = <value optimized out>
------------------------------------------------------------------------
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=64966
--
Edit this bug report at https://bugs.php.net/bug.php?id=64966&edit=1