Status fields:
| creation_ts: | 2011-12-07 17:27 |
|---|---|
| component: | vm |
| version: | default branch |
| rep_platform: | All |
| op_sys: | All |
| bug_status: | RESOLVED |
| resolution: | FIXED |
| reporter: | stefan@complang.tuwien.ac.at |
This happens occasionally during dacapo xalan runs. The stack trace looks like this:
#7 0x00007f5df071afee in trap_handle (sig=1, xpc=0x393a484216, context=0x7f5def4c7680)
at trap.cpp:229
#8 <signal handler called>
#9 0x000000393a484216 in memcpy () from /lib64/libc.so.6
#10 0x00007f5df06f4b11 in literalstring_u2 (a=0x7f5def3e1fc0, length=18, offset=0,
copymode=true) at string.cpp:527
#11 0x00007f5df06f4b98 in javastring_intern (string=<value optimized out>)
at string.cpp:692
#12 0x00007f5df06dedac in java_lang_reflect_Method ()
at ../../src/vm/javaobjects.hpp:2494
#13 class_get_declaredmethods (c=0x7f5df05cfe00, publicOnly=true) at class.cpp:1897
The reason are the mysterious 10 bytes which are appended in a few places in string.cpp.
They are completely useless. Apparently, strings created by javastring_new don't carry
these extra bytes. When they happen to fall on a page boundary adjacent to an unmapped
page, the segfault occurs.
I already have a patch for this.
http://mips.complang.tuwien.ac.at/hg/cacao/rev/cff92704c4e0