harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ilya Leviev (JIRA)" <j...@apache.org>
Subject [jira] Updated: (HARMONY-4047) [drlvm][jit][tc] Known/proven race conditions markup at \vm\jitrino\src\jet\rt.cpp":(173-169) at rt_unwind function
Date Tue, 05 Jun 2007 13:07:26 GMT

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

Ilya Leviev updated HARMONY-4047:
---------------------------------

    Attachment: SourceViewScreenshot-1.jpg

> [drlvm][jit][tc] Known/proven race conditions markup at \vm\jitrino\src\jet\rt.cpp":(173-169)
at rt_unwind function
> -------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4047
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4047
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Ilya Leviev
>         Attachments: HARMONY-4047_add_markup.patch, SourceViewScreenshot-1.jpg
>
>
> Known/proven race conditions markup at \vm\jitrino\src\jet\rt.cpp":(173-169) at rt_unwind
function
> TC report on thread unsafe access that result in race condition that occur during concurrent
execution of rt_unwind function. 
> As issue related to debug mode I have marked it by special API for prevention of further
alarms on this race. 
> 1) Write -> Read data-race	
> Memory read at "rt.cpp":169 conflicts with a prior memory write at "rt.cpp":173
> 2) Write -> Write data-race
> Memory write at "rt.cpp":173 conflicts with a prior memory write at "rt.cpp":173
> Stack Trace: 
> Context
> 	Function gc_alloc_fast "mutator_alloc.cpp":120
> 	Function rth_aastore "jit_runtime_support.cpp":499
> 	Function class VM_thread * get_thread_ptr_stub(void) "thread_manager.cpp":138
> 	Function hythread_suspend_enable "hythread_ext.h":373
> 	Function Java_org_apache_harmony_vm_VMStack_getCallerClass "org_apache_harmony_vm_vmstack.cpp":59
> 	Function st_get_frame "stack_trace.cpp":137
> 	Function void si_goto_previous(struct StackIterator *,bool) "stack_iterator_ia32.cpp":315
> 	Function void Dll_JIT::unwind_stack_frame(struct Method *,struct JitFrameContext *)
"dll_jit_intf.h":94
> 	Function JIT_unwind_stack_frame "drljitinterface.cpp":360
> 	Function void Jitrino::Jet::rt_unwind(void *,struct Method *,struct JitFrameContext
*) "rt.cpp":106
> 1st Access
> 	Function class VM_thread * get_thread_ptr_stub(void) "thread_manager.cpp":138
> 	Function m2n_free_local_handles "m2n_ia32.cpp":268
> 	Function class VM_thread * get_thread_ptr_stub(void) "thread_manager.cpp":138
> 	Function hythread_suspend_enable "hythread_ext.h":373
> 	Function Java_org_apache_harmony_vm_VMStack_getCallerClass "org_apache_harmony_vm_vmstack.cpp":59
> 	Function st_get_frame "stack_trace.cpp":137
> 	Function void si_goto_previous(struct StackIterator *,bool) "stack_iterator_ia32.cpp":315
> 	Function void Dll_JIT::unwind_stack_frame(struct Method *,struct JitFrameContext *)
"dll_jit_intf.h":94
> 	Function JIT_unwind_stack_frame "drljitinterface.cpp":360
> 	Function void Jitrino::Jet::rt_unwind(void *,struct Method *,struct JitFrameContext
*) "rt.cpp":173
> 	"166"	""	" #ifdef _DEBUG"
> 	"167"	""	"     // presumption: only GP registers can be callee-save"
> 	"168"	""	"     static bool do_check = true;"
> 	"169"	""	"     for (unsigned i=0; do_check && i<ar_num; i++) {"
> 	"170"	""	"         AR ar = _ar(i);"
> 	"171"	""	"         assert(!is_callee_save(ar) || is_gr(ar));"
> 	"172"	""	"     }"
> 	"173"	"*"	"     do_check = false;"
> 	"174"	""	" #endif"
> 2nd Access
> 	Function gc_alloc_fast "mutator_alloc.cpp":120
> 	Function rth_aastore "jit_runtime_support.cpp":499
> 	Function class VM_thread * get_thread_ptr_stub(void) "thread_manager.cpp":138
> 	Function hythread_suspend_enable "hythread_ext.h":373
> 	Function Java_org_apache_harmony_vm_VMStack_getCallerClass "org_apache_harmony_vm_vmstack.cpp":59
> 	Function st_get_frame "stack_trace.cpp":137
> 	Function void si_goto_previous(struct StackIterator *,bool) "stack_iterator_ia32.cpp":315
> 	Function void Dll_JIT::unwind_stack_frame(struct Method *,struct JitFrameContext *)
"dll_jit_intf.h":94
> 	Function JIT_unwind_stack_frame "drljitinterface.cpp":360
> 	Function void Jitrino::Jet::rt_unwind(void *,struct Method *,struct JitFrameContext
*) "rt.cpp":169
> 	"166"	""	" #ifdef _DEBUG"
> 	"167"	""	"     // presumption: only GP registers can be callee-save"
> 	"168"	""	"     static bool do_check = true;"
> 	"169"	"*"	"     for (unsigned i=0; do_check && i<ar_num; i++) {"
> 	"170"	""	"         AR ar = _ar(i);"
> 	"171"	""	"         assert(!is_callee_save(ar) || is_gr(ar));"
> 	"172"	""	"     }"
> 	"173"	""	"     do_check = false;"
> 	"174"	""	" #endif"
> See also Source View screenshot

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