You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Gregory Shimansky (JIRA)" <ji...@apache.org> on 2007/05/28 13:28:15 UTC
[jira] Resolved: (HARMONY-3948) [drlvm][port][lil] Known/proven
race conditions markup at at "stack_iterator_ia32.cpp":67 at
si_unwind_from_m2n()
[ https://issues.apache.org/jira/browse/HARMONY-3948?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gregory Shimansky resolved HARMONY-3948.
----------------------------------------
Resolution: Fixed
Patch applied at 542202. Please check that it was applied as expected.
> [drlvm][port][lil] Known/proven race conditions markup at at "stack_iterator_ia32.cpp":67 at si_unwind_from_m2n()
> -----------------------------------------------------------------------------------------------------------------
>
> Key: HARMONY-3948
> URL: https://issues.apache.org/jira/browse/HARMONY-3948
> Project: Harmony
> Issue Type: Bug
> Components: DRLVM
> Reporter: Ilya Leviev
> Assignee: Gregory Shimansky
> Attachments: HARMONY-3948_add_markup.patch, SourceViewScreenshot-1.jpg
>
>
> TC report on thread unsafe access that result in race condition that occur during concurrent execution of si_unwind_from_m2n functions.
> As issues related to vm statistic data collection in debug mode and it not affect correctness of execution I mark it by special API for prevention of further alarms on this race.
> Write -> Write data-race
> Memory write at "stack_iterator_ia32.cpp":67 conflicts with a prior memory write at "stack_iterator_ia32.cpp":67
> Stack Trace:
> Context
> Function vm_get_gc_thread_local "c_interface.cpp":2334
> Function gc_alloc_fast "gc_for_vm.cpp":178
> Function vm_get_gc_thread_local "c_interface.cpp":2334
> Function gc_alloc_fast "gc_for_vm.cpp":178
> Function class VM_thread * get_thread_ptr_stub(void) "thread_manager.cpp":138
> Function hythread_suspend_enable "hythread_ext.h":370
> 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":318
> Function si_unwind_from_m2n "stack_iterator_ia32.cpp":65
> 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 vm_get_gc_thread_local "c_interface.cpp":2334
> Function int Jitrino::Jet::rt_h_lcmp(__int64,__int64) "arith_rt.cpp":69
> Function class VM_thread * get_thread_ptr_stub(void) "thread_manager.cpp":138
> Function hythread_suspend_enable "hythread_ext.h":370
> Function Java_java_security_AccessController_getStackDomains "org_apache_harmony_vm_vmstack.cpp":185
> Function st_get_trace "stack_trace.cpp":205
> Function void si_goto_previous(struct StackIterator *,bool) "stack_iterator_ia32.cpp":318
> Function si_unwind_from_m2n "stack_iterator_ia32.cpp":67
> "63" "" " // Goto the managed frame immediately prior to m2nfl"
> "64" "" " static void si_unwind_from_m2n(StackIterator* si, bool over_popped = true)"
> "65" "" " {"
> "66" "" " #ifdef VM_STATS"
> "67" "*" " VM_Statistics::get_vm_stats().num_unwind_native_frames_all++;"
> "68" "" " #endif"
> "69" "" " "
> "70" "" " M2nFrame* m2nfl = si->m2nfl;"
> 2nd Access
> Function vm_get_gc_thread_local "c_interface.cpp":2334
> Function gc_alloc_fast "gc_for_vm.cpp":178
> Function vm_get_gc_thread_local "c_interface.cpp":2334
> Function gc_alloc_fast "gc_for_vm.cpp":178
> Function class VM_thread * get_thread_ptr_stub(void) "thread_manager.cpp":138
> Function hythread_suspend_enable "hythread_ext.h":370
> 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":318
> Function si_unwind_from_m2n "stack_iterator_ia32.cpp":67See also Source View screenshots.
> "63" "" " // Goto the managed frame immediately prior to m2nfl"
> "64" "" " static void si_unwind_from_m2n(StackIterator* si, bool over_popped = true)"
> "65" "" " {"
> "66" "" " #ifdef VM_STATS"
> "67" "*" " VM_Statistics::get_vm_stats().num_unwind_native_frames_all++;"
> "68" "" " #endif"
> "69" "" " "
> "70" "" " M2nFrame* m2nfl = si->m2nfl;"
> See also Source View screenshots.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.