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/06/05 14:55:26 UTC
[jira] Created: (HARMONY-4047) [drlvm][jit][tc] Known/proven race
conditions markup at \vm\jitrino\src\jet\rt.cpp":(173-169) at rt_unwind
function
[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
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.
[jira] Resolved: (HARMONY-4047) [drlvm][jit][tc] Known/proven race
conditions markup at \vm\jitrino\src\jet\rt.cpp":(173-169) at rt_unwind
function
Posted by "Mikhail Fursov (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-4047?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mikhail Fursov resolved HARMONY-4047.
-------------------------------------
Resolution: Fixed
Committed as r556943
> [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.
[jira] Assigned: (HARMONY-4047) [drlvm][jit][tc] Known/proven race
conditions markup at \vm\jitrino\src\jet\rt.cpp":(173-169) at rt_unwind
function
Posted by "Mikhail Fursov (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-4047?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mikhail Fursov reassigned HARMONY-4047:
---------------------------------------
Assignee: Mikhail Fursov
> [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.
[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
Posted by "Ilya Leviev (JIRA)" <ji...@apache.org>.
[ 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.
[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
Posted by "Ilya Leviev (JIRA)" <ji...@apache.org>.
[ 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.
[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
Posted by "Ilya Leviev (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-4047?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ilya Leviev updated HARMONY-4047:
---------------------------------
Attachment: HARMONY-4047_add_markup.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
> Attachments: HARMONY-4047_add_markup.patch
>
>
> 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.