[drlvm][jit] Assertions in JET code during root set enumeration
---------------------------------------------------------------
Key: HARMONY-4790
URL: https://issues.apache.org/jira/browse/HARMONY-4790
Project: Harmony
Issue Type: Bug
Components: VM
Environment: Windows/x86
Reporter: Ilya Berezhniuk
Priority: Minor
While investigating HARMONY-4388 I've observed several kinds of assertions on debug build.
All these assertions have occurred in JET code, and all call stacks contain root set enumeration.
To reproduce this bug:
- checkout stress suite;
- start stress tests on debug build.
The whole stress suite executes too long, so I started this test separately. Command line
(to start from stress/qa directory) is about:
..../win_ia32_msvc_debug/deploy/jdk/jre/bin/java -classpath "bin/classes;../../tools/th.dest/bin/th.jar"
org.apache.harmony.test.stress.jpda.jdwp.scenario.EVENT014.EventTest014
Note: to run correctly on Windows these tests require SystemRoot environment variable to be
set to Windows folder.
I observed 3 different assertions, but the following is most often:
assert (method_get_num_handlers(method) == 0)
Stack trace:
-------------------------------
jitrino.dll!_assert(const char * expr=0x0167c26c, const char * filename=0x0167c234, unsigned
int lineno=273) Line 295 C
jitrino.dll!Jitrino::Jet::rt_enum(void * jit=0x012187d8, Method * method=0x0230b0b8, void
* henum=0x00000000, JitFrameContext * context=0x02b692ec) Line 273 + 0x2e bytes C++
jitrino.dll!JIT_get_root_set_from_stack_frame(void * jit=0x012187d8, Method * method=0x0230b0b8,
void * enum_handle=0x00000000, JitFrameContext * context=0x02b692ec) Line 380 + 0x15 bytes
C++
harmonyvm.dll!Dll_JIT::get_root_set_from_stack_frame(Method * method=0x0230b0b8, void *
enum_handle=0x00000000, const JitFrameContext * context=0x02b692ec) Line 104 + 0x18 bytes
C++
harmonyvm.dll!vm_enumerate_root_set_single_thread_on_stack(StackIterator * si=0x02b692e8)
Line 302 + 0x39 bytes C++
harmonyvm.dll!vm_enumerate_thread(VM_thread * thread=0x0287b1b0) Line 213 + 0x9 bytes C++
harmonyvm.dll!stop_the_world_root_set_enumeration() Line 110 + 0xc bytes C++
harmonyvm.dll!vm_enumerate_root_set_all_threads() Line 142 C++
gc_gen.dll!gc_reclaim_heap(GC * gc=0x019d68b0, unsigned int gc_cause=2) Line 330 + 0x8
bytes C++
gc_gen.dll!lspace_alloc(unsigned int size=8000016, Allocator * allocator=0x01af6c70) Line
228 + 0xe bytes C++
gc_gen.dll!gc_alloc(unsigned int size=8000016, unsigned int ah=19661968, void * unused_gc_tls=0x011fa304)
Line 82 + 0x10 bytes C++
harmonyvm.dll!vm_new_vector_using_vtable_and_thread_pointer(int length=1000000, unsigned
int vector_handle=19661968, void * tp=0x011fa304) Line 219 + 0x14 bytes C++
harmonyvm.dll!vm_rt_new_vector_using_vtable_and_thread_pointer(int length=1000000, unsigned
int vector_handle=19661968, void * tp=0x011fa304) Line 113 + 0x11 bytes C++
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
|