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] Created: (HARMONY-3897) [drlvm][thread] Race condition at thread_java_basic.c:531 and thread_native_suspend.c":189
Date Thu, 17 May 2007 12:59:16 GMT
[drlvm][thread] Race condition at thread_java_basic.c:531 and thread_native_suspend.c":189
------------------------------------------------------------------------------------------

                 Key: HARMONY-3897
                 URL: https://issues.apache.org/jira/browse/HARMONY-3897
             Project: Harmony
          Issue Type: Bug
          Components: DRLVM
            Reporter: Ilya Leviev
         Attachments: SourceViewScreenshot-1.jpg


TC report on thread unsafe access to "state" field that result in race condition that occur
during concurrent execution of jthread_sleep and wait_safe_region_event functions.


Write -> Write data-race	
Memory write at "thread_native_suspend.c":189 conflicts with a prior memory write at "thread_java_basic.c":531


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 rth_get_interface_vtable "jit_runtime_support.cpp":651
	Function rth_update_checkcast_stats "jit_runtime_support.cpp":377
	Function hythread_thin_monitor_try_enter "thread_native_thin_monitor.c":323
	Function unreserve_lock "thread_native_thin_monitor.c":162
	Function hythread_suspend_other "thread_native_suspend.c":255
	Function wait_safe_region_event "thread_native_suspend.c":169


1st Access
	Function __int64 Jitrino::Jet::rt_h_i64_a(__int64,__int64,enum JavaByteCodes) "arith_rt.cpp":218
	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 m2n_free_local_handles "m2n_ia32.cpp":268
	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_lang_VMThreadManager_sleep "java_lang_vmthreadmanager.cpp":140
	Function jthread_sleep "thread_java_basic.c":531


"530"	""	" "
"531"	"*"	"     tm_native_thread->state |= TM_THREAD_STATE_RUNNABLE;"
"532"	""	"     return status;"



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 rth_get_interface_vtable "jit_runtime_support.cpp":651
	Function rth_update_checkcast_stats "jit_runtime_support.cpp":377
	Function hythread_thin_monitor_try_enter "thread_native_thin_monitor.c":323
	Function unreserve_lock "thread_native_thin_monitor.c":162
	Function hythread_suspend_other "thread_native_suspend.c":255
	Function wait_safe_region_event "thread_native_suspend.c":189


"187"	""	"            thread, thread->suspend_count, thread->request));"
"188"	""	"     hymutex_lock(&thread->mutex);"
"189"	"*"	"     thread->state |= TM_THREAD_STATE_SUSPENDED;"
"190"	""	"     hymutex_unlock(&thread->mutex);"
"191"	""	"     return TM_ERROR_NONE;"


See also Source View screenshot.


If it not affect correctness of execution I will mark it by special API for prevention of
further alarms on this race.




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