You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Xiao-Feng Li (JIRA)" <ji...@apache.org> on 2008/01/17 06:50:35 UTC

[jira] Closed: (HARMONY-3611) [drlvm][gc_cc] GC_CC crashes with assertion in OOME-related scenario

     [ https://issues.apache.org/jira/browse/HARMONY-3611?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Xiao-Feng Li closed HARMONY-3611.
---------------------------------

    Resolution: Won't Fix

close GCv4.1 issues.

> [drlvm][gc_cc] GC_CC crashes with assertion in OOME-related scenario
> --------------------------------------------------------------------
>
>                 Key: HARMONY-3611
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3611
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Mikhail Fursov
>            Assignee: Xiao-Feng Li
>
> The problem was found during HARMONY-2298 related investigations:
> For the following test:
> try {
>             for (int i=0;i<1000*1000;i++) {
>                 ThreadLocal t = new ThreadLocal();
>                 t.set(new Object());
>                 t.set(null);
>             }
>             System.out.println("PASSED");
>         } catch (OutOfMemoryError e) {
>             System.out.println("FAILED");
>         } 
> When run with -Xem:jet -Xmx30m option we have a crash.
> Here is stack trace with GC+JET failure:
> > harmonyvm.dll!Class::get_allocation_handle() Line 1134 + 0x11 C++
>   harmonyvm.dll!class_get_allocation_handle(Class * ch=0x00000008) Line 2394 C++
>   gc_cc.dll!Partial_Reveal_Object::valid() Line 199 + 0xc C++
>   gc_cc.dll!gc_copy_process_reference(Slot slot={...}, int phase=2) Line 166 C++
>   gc_cc.dll!gc_copy_add_root_set_entry(Slot root={...}) Line 283 + 0xd C++
>   gc_cc.dll!gc_add_root_set_entry_slot(Slot root={...}) Line 252 + 0x9 C++
>   gc_cc.dll!gc_add_root_set_entry(void * * ref=0x04b9f8e8, unsigned int is_pinned=0) Line 265 + 0x9 C++
>   harmonyvm.dll!vm_enumerate_root_reference(void * * ref=0x04b9f8e8, unsigned int is_pinned=0) Line 139 + 0x10 C++
>   jitrino.dll!Jitrino::Jet::rt_enum(void * jit=0x01284478, Method * method=0x04376a98, void * henum=0x00000000, JitFrameContext * context=0x044607bc) Line 347 + 0x11 C++
>   jitrino.dll!JIT_get_root_set_from_stack_frame(void * jit=0x01284478, Method * method=0x04376a98, void * enum_handle=0x00000000, JitFrameContext * context=0x044607bc) Line 371 + 0x15 C++
>   harmonyvm.dll!Dll_JIT::get_root_set_from_stack_frame(Method * method=0x04376a98, void * enum_handle=0x00000000, const JitFrameContext * context=0x044607bc) Line 104 + 0x18 C++
>   harmonyvm.dll!vm_enumerate_root_set_single_thread_on_stack(StackIterator * si=0x044607b8) Line 257 + 0x39 C++
>   harmonyvm.dll!vm_enumerate_thread(VM_thread * thread=0x04389e40) Line 222 + 0x9 C++
>   harmonyvm.dll!stop_the_world_root_set_enumeration() Line 108 + 0xc C++
>   harmonyvm.dll!vm_enumerate_root_set_all_threads() Line 148 C++
>   gc_cc.dll!enumerate_universe() Line 136 + 0x8 C++
>   gc_cc.dll!copy_gc(int size=7340044) Line 375 + 0x16 C++
>   gc_cc.dll!select_gc(int size=7340044) Line 96 + 0x9 C++
>   gc_cc.dll!gc_alloc(unsigned int in_size=7340044, unsigned int _ah=20129088, void * thread_pointer=0x01288cf4) Line 274 + 0x9 C++
>   harmonyvm.dll!vm_new_vector_using_vtable_and_thread_pointer(int length=1835008, unsigned int vector_handle=20129088, void * tp=0x01288cf4) Line 217 + 0x14 C++
>   harmonyvm.dll!vm_rt_new_vector_using_vtable_and_thread_pointer(int length=1835008, unsigned int vector_handle=20129088, void * tp=0x01288cf4) Line 112 + 0x11 C++
>   01320a35()
> After short investigation of JET/GC problem I found that JET gc report looks valid: java/lang/FinalizerThread is being reported.
> GC fails because it founds broken references from this root-object to another ones.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.