harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gregory Shimansky (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HARMONY-4790) [drlvm][jvmti] EventTest014 JDWP stress test intermittently fails with assertion violations
Date Fri, 28 Sep 2007 14:15:51 GMT

    [ https://issues.apache.org/jira/browse/HARMONY-4790?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12531018
] 

Gregory Shimansky commented on HARMONY-4790:
--------------------------------------------

I think I found out the cause of this bug. In the file jvmti_break_intf.cpp line 612 breakpoint
is copied to the local variable to save it from being modified when breakpoints list is unlocked
before calling the callback. But the data pointer of this breakpoint reference is kept the
same. If another thread modifies, e.g. removes this breakpoint reference when the list is
unlocked, data pointer points to invalid memory because it is freed.

When assertion fails I see that data pointer points to the memory filled with 0xdddddddd.
This means that this memory was freed I think.

> [drlvm][jvmti] EventTest014 JDWP stress test intermittently fails with assertion violations
> -------------------------------------------------------------------------------------------
>
>                 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.


Mime
View raw message