You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Peter Novodvorsky (JIRA)" <ji...@apache.org> on 2007/03/07 14:56:24 UTC

[jira] Commented: (HARMONY-3001) [drlvm][thread] Race condition at vm\thread\src\thread_native_thin_monitor.c

    [ https://issues.apache.org/jira/browse/HARMONY-3001?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12478770 ] 

Peter Novodvorsky commented on HARMONY-3001:
--------------------------------------------

problem lines are 247 and 78 after some commit of thread_native_thin_monitor.c

> [drlvm][thread] Race condition at vm\thread\src\thread_native_thin_monitor.c 
> -----------------------------------------------------------------------------
>
>                 Key: HARMONY-3001
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3001
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Ilya Leviev
>         Assigned To: weldon washburn
>
> There are thread unsafe access that result in race condition that occur during concurrent execution of  set_fat_lock_id and hythread_thin_monitor_try_enter functions.
> Write -> Read data-race: 
> Memory read at "thread_native_thin_monitor.c":254 conflicts with a prior memory write at "thread_native_thin_monitor.c":83
> Stack Traces:  
> Context
> 	Function ExecuteMethod "em_intf.cpp":43
> 	Function void DrlEMImpl::executeMethod(struct _jmethodID *,union jvalue *,union jvalue *) "drlemimpl.cpp":514
> 	Function JIT_execute_method "interp_exports.cpp":162
> 	Function void interpreter_execute_method(struct Method *,union jvalue *,union jvalue *) "interpreter.cpp":3184
> 	Function void interpreter(struct StackFrame &) "interpreter.cpp":2828
> 	Function Opcode_MONITORENTER "interpreter.cpp":2256
> 	Function void vm_monitor_enter_wrapper(struct ManagedObject *) "interp_imports.cpp":29
> 	Function vm_monitor_enter_default "mon_enter_exit.cpp":117
> 	Function jthread_monitor_enter "thread_java_monitors.c":84
> 	Function hythread_thin_monitor_try_enter "thread_native_thin_monitor.c":240
> Definition
> 	Function EntryPoint "dllcrt0.c":323
> 	Function hythread_attach "thread_native_basic.c":241
> 	Function hythread_tls_alloc "thread_native_tls.c":57
> 	Function hythread_monitor_exit "thread_native_fat_monitor.c":155
> 	Function hythread_monitor_exit "thread_native_fat_monitor.c":155
> 	Function JNI_CreateJavaVM "jni.cpp":493
> 	Function int vm_init1(struct JavaVM_Internal *,struct JavaVMInitArgs *) "vm_init.cpp":664
> 	Function gc_init "init.cpp":281
> 	Function void init_mem(void) "init.cpp":270
> 1st Access
> 	Function interpreterInvoke "interpreter.cpp":3381
> 	Function void interpreter(struct StackFrame &) "interpreter.cpp":2886
> 	Function Opcode_INVOKESTATIC "interpreter.cpp":2093
> 	Function interpreterInvokeStatic "interpreter.cpp":3266
> 	Function void interpreterInvokeStaticNative(struct StackFrame &,struct StackFrame &,struct Method *) "interp_native_ia32.cpp":424
> 	Function invokeJNI "interp_native_ia32.cpp":49
> 	Function Java_java_lang_VMThreadManager_wait "java_lang_vmthreadmanager.cpp":202
> 	Function jthread_monitor_timed_wait "thread_java_monitors.c":310
> 	Function inflate_lock "thread_native_thin_monitor.c":601
> 	Function set_fat_lock_id "thread_native_thin_monitor.c":83
> 2nd Access
> 	Function ExecuteMethod "em_intf.cpp":43
> 	Function void DrlEMImpl::executeMethod(struct _jmethodID *,union jvalue *,union jvalue *) "drlemimpl.cpp":514
> 	Function JIT_execute_method "interp_exports.cpp":162
> 	Function void interpreter_execute_method(struct Method *,union jvalue *,union jvalue *) "interpreter.cpp":3184
> 	Function void interpreter(struct StackFrame &) "interpreter.cpp":2828
> 	Function Opcode_MONITORENTER "interpreter.cpp":2256
> 	Function void vm_monitor_enter_wrapper(struct ManagedObject *) "interp_imports.cpp":29
> 	Function vm_monitor_enter_default "mon_enter_exit.cpp":117
> 	Function jthread_monitor_enter "thread_java_monitors.c":84
> 	Function hythread_thin_monitor_try_enter "thread_native_thi

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.