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.