You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Ilya Leviev (JIRA)" <ji...@apache.org> on 2007/07/23 16:19:31 UTC
[jira] Closed: (HARMONY-4047) [drlvm][jit][tc] Known/proven race
conditions markup at \vm\jitrino\src\jet\rt.cpp":(173-169) at rt_unwind
function
[ https://issues.apache.org/jira/browse/HARMONY-4047?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ilya Leviev closed HARMONY-4047.
--------------------------------
Markup verified at r 557608.
Thank you for applying this patch.
> [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
> Assignee: Mikhail Fursov
> 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.