harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "weldon washburn (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HARMONY-4215) [drlvm][reliability] assert in JIT while unwinding stack (during enumeration)
Date Wed, 22 Aug 2007 17:16:30 GMT

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

weldon washburn commented on HARMONY-4215:
------------------------------------------

It seems we need to narrow down what might be causing the problem.  I have some ideas on how
to proceed.

1)
If it is a race condition, typically each run will report different results.  This is because
the OS is scheduling threads slightly differently from run-to-run and the threads access the
coherent caches at slightly different timings.  Question -- does "assert(*p_ref):" always
hit at the same spot or does it vary from run to run?

2)
One way to determine if there is a bug in thread suspend/resume that is causing problems is
to add a sleep(Zmsec) immediately after the Thread Manager suspends the threads.  If the sleep()
makes the problem go away, it might be caused by Thread Manager erroneously thinking a thread
is properly suspended when in fact it is not.  A good place to add the diagnostic sleep()
is immedately after hythread_suspend_all() in stop_the_world_root_set_enum.cpp::stop_the_world_root_set_enumeration().
 This is line 95.

Picking a value of "Z" might be tricky.  Too big might cause the app to fail or disturb the
execution patterms too much.  Too little might not be effective.  This will take some experimentation.

It would be great if someone could run the above tests and report the results.  Right now,
I am out of time.


> [drlvm][reliability] assert in JIT while unwinding stack (during enumeration)
> -----------------------------------------------------------------------------
>
>                 Key: HARMONY-4215
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4215
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>         Environment: Win 2003
>            Reporter: Aleksey Ignatenko
>         Attachments: 2rel_tests_fail.dmp, test.zip, util.Date_int.out.err
>
>
> 2 reliablity tests failed on assertion in jit:
> 1. CharsetSyncCacheTest
> 2. ZlibTest
> svn rev 548320
> Call stack:
>  	jitrino.dll!_assert(const char * expr=0x01ba9f08, const char * filename=0x01ba9eb0,
unsigned int lineno=0x000000ac)  Line 295	C
> >	jitrino.dll!Jitrino::Ia32::StackInfo::read(Jitrino::MethodDesc * pMethodDesc=0x03bef720,
unsigned int eip=0x00000000, bool isFirst=false)  Line 172 + 0x1a	C++
>  	jitrino.dll!Jitrino::Ia32::RuntimeInterface::unwindStack(Jitrino::MethodDesc * methodDesc=0x03bef720,
JitFrameContext * context=0x02de90d4, bool isFirst=false)  Line 40	C++
>  	jitrino.dll!Jitrino::Jitrino::UnwindStack(Jitrino::MethodDesc * methodDesc=0x03bef720,
JitFrameContext * context=0x02de90d4, bool isFirst=false)  Line 280 + 0x1e	C++
>  	jitrino.dll!JIT_unwind_stack_frame(void * jit=0x012a6a48, Method * method=0x02cb3668,
JitFrameContext * context=0x02de90d4)  Line 362 + 0x18	C++
>  	harmonyvm.dll!Dll_JIT::unwind_stack_frame(Method * method=0x02cb3668, JitFrameContext
* context=0x02de90d4)  Line 94 + 0x14	C++
>  	harmonyvm.dll!si_goto_previous(StackIterator * si=0x02de90d0, bool over_popped=false)
 Line 315 + 0x32	C++
>  	harmonyvm.dll!vm_enumerate_root_set_single_thread_on_stack(StackIterator * si=0x02de90d0)
 Line 339 + 0xb	C++
>  	harmonyvm.dll!vm_enumerate_thread(VM_thread * thread=0x02d7e088)  Line 224 + 0x9	C++
>  	harmonyvm.dll!stop_the_world_root_set_enumeration()  Line 110 + 0xc	C++
>  	harmonyvm.dll!vm_enumerate_root_set_all_threads()  Line 150	C++
>  	gc_gen.dll!gc_reclaim_heap(GC * gc=0x014d5de8, unsigned int gc_cause=0x00000003)  Line
295 + 0x8	C++
>  	gc_gen.dll!gc_force_gc()  Line 138 + 0xd	C++
>  	harmonyvm.dll!Java_java_lang_VMMemoryManager_runGC(JNIEnv_External * __formal=0x02d9e240,
JNIEnv_External * __formal=0x02d9e240)  Line 138 + 0x8	C++
>  	03bf33ef()	
>  	harmonyvm.dll!get_vm_thread(HyThread * thr=0x03bef9ec)  Line 193 + 0xb	C++
>  	harmonyvm.dll!get_vm_thread(HyThread * thr=0x00000001)  Line 194 + 0x7	C++
> To reproduce onee needs to run these tests with 30 min cycle (set     <property name="test.duration"
value="1800" />  parameter in build.xml of reliablity tests).

-- 
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