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/05/17 14:43:16 UTC

[jira] Created: (HARMONY-3896) [drlvm][thread] Race condition at thread_java_monitors.c":345 and thread_native_suspend.c":189

[drlvm][thread] Race condition at thread_java_monitors.c":345 and thread_native_suspend.c":189
----------------------------------------------------------------------------------------------

                 Key: HARMONY-3896
                 URL: https://issues.apache.org/jira/browse/HARMONY-3896
             Project: Harmony
          Issue Type: Bug
          Components: DRLVM
            Reporter: Ilya Leviev


[drlvm][thread] Race condition at thread_java_monitors.c":345 and thread_native_suspend.c":189

TC report on thread unsafe access to "state" field that result in race condition that occur during concurrent execution of jthread_monitor_timed_wait 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_monitors.c":345


Stack Trace: 

Context
	Function void vm_execute_java_method_array(struct _jmethodID *,union jvalue *,union jvalue *) "ini.cpp":60
	Function ExecuteMethod "em_intf.cpp":43
	Function void DrlEMImpl::executeMethod(struct _jmethodID *,union jvalue *,union jvalue *) "drlemimpl.cpp":509
	Function void JIT_execute_method_default(void *,struct _jmethodID *,union jvalue *,union jvalue *) "ini_ia32.cpp":199
	Function vm_invoke_native_array_stub "ini_ia32.cpp":76
	Function hythread_thin_monitor_exit "thread_native_thin_monitor.c":416
	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 class VM_thread * get_thread_ptr_stub(void) "thread_manager.cpp":138
	Function m2n_free_local_handles "m2n_ia32.cpp":268
	Function hythread_self "hythread.h":465
	Function vm_get_gc_thread_local "c_interface.cpp":2334
	Function gc_alloc_fast "gc_for_vm.cpp":178
	Function hythread_self "hythread.h":465
	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_wait "java_lang_vmthreadmanager.cpp":202
	Function jthread_monitor_timed_wait "thread_java_monitors.c":345


function jthread_monitor_timed_wait "thread_java_monitors.c":345
"343"	""	"        tm_native_thread->state &= ~TM_THREAD_STATE_WAITING_INDEFINITELY;"
"344"	""	"     }"
"345"	"*"	"     tm_native_thread->state |= TM_THREAD_STATE_RUNNABLE;"  
"346"	""	" "




2nd Access
	Function void vm_execute_java_method_array(struct _jmethodID *,union jvalue *,union jvalue *) "ini.cpp":60
	Function ExecuteMethod "em_intf.cpp":43
	Function void DrlEMImpl::executeMethod(struct _jmethodID *,union jvalue *,union jvalue *) "drlemimpl.cpp":509
	Function void JIT_execute_method_default(void *,struct _jmethodID *,union jvalue *,union jvalue *) "ini_ia32.cpp":199
	Function vm_invoke_native_array_stub "ini_ia32.cpp":76
	Function hythread_thin_monitor_exit "thread_native_thin_monitor.c":416
	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


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


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.


[jira] Commented: (HARMONY-3896) [drlvm][thread] Race condition at thread_java_monitors.c":345 and thread_native_suspend.c":189

Posted by "weldon washburn (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HARMONY-3896?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12497271 ] 

weldon washburn commented on HARMONY-3896:
------------------------------------------

I just now looked at the specific lines of code that Thread Checker has flagged .  This looks like a legitimate problem.  It matches the motivation for bullets number 2 and number 3 in"[drlvm][threading] a list of design/development issues that need...".

> [drlvm][thread] Race condition at thread_java_monitors.c":345 and thread_native_suspend.c":189
> ----------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3896
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3896
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Ilya Leviev
>         Attachments: Source_View_Screenshot-1.jpg
>
>
> [drlvm][thread] Race condition at thread_java_monitors.c":345 and thread_native_suspend.c":189
> TC report on thread unsafe access to "state" field that result in race condition that occur during concurrent execution of jthread_monitor_timed_wait 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_monitors.c":345
> Stack Trace: 
> Context
> 	Function void vm_execute_java_method_array(struct _jmethodID *,union jvalue *,union jvalue *) "ini.cpp":60
> 	Function ExecuteMethod "em_intf.cpp":43
> 	Function void DrlEMImpl::executeMethod(struct _jmethodID *,union jvalue *,union jvalue *) "drlemimpl.cpp":509
> 	Function void JIT_execute_method_default(void *,struct _jmethodID *,union jvalue *,union jvalue *) "ini_ia32.cpp":199
> 	Function vm_invoke_native_array_stub "ini_ia32.cpp":76
> 	Function hythread_thin_monitor_exit "thread_native_thin_monitor.c":416
> 	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 class VM_thread * get_thread_ptr_stub(void) "thread_manager.cpp":138
> 	Function m2n_free_local_handles "m2n_ia32.cpp":268
> 	Function hythread_self "hythread.h":465
> 	Function vm_get_gc_thread_local "c_interface.cpp":2334
> 	Function gc_alloc_fast "gc_for_vm.cpp":178
> 	Function hythread_self "hythread.h":465
> 	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_wait "java_lang_vmthreadmanager.cpp":202
> 	Function jthread_monitor_timed_wait "thread_java_monitors.c":345
> function jthread_monitor_timed_wait "thread_java_monitors.c":345
> "343"	""	"        tm_native_thread->state &= ~TM_THREAD_STATE_WAITING_INDEFINITELY;"
> "344"	""	"     }"
> "345"	"*"	"     tm_native_thread->state |= TM_THREAD_STATE_RUNNABLE;"  
> "346"	""	" "
> 2nd Access
> 	Function void vm_execute_java_method_array(struct _jmethodID *,union jvalue *,union jvalue *) "ini.cpp":60
> 	Function ExecuteMethod "em_intf.cpp":43
> 	Function void DrlEMImpl::executeMethod(struct _jmethodID *,union jvalue *,union jvalue *) "drlemimpl.cpp":509
> 	Function void JIT_execute_method_default(void *,struct _jmethodID *,union jvalue *,union jvalue *) "ini_ia32.cpp":199
> 	Function vm_invoke_native_array_stub "ini_ia32.cpp":76
> 	Function hythread_thin_monitor_exit "thread_native_thin_monitor.c":416
> 	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
> 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;"
> 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.


[jira] Assigned: (HARMONY-3896) [drlvm][thread] Race condition at thread_java_monitors.c":345 and thread_native_suspend.c":189

Posted by "weldon washburn (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-3896?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

weldon washburn reassigned HARMONY-3896:
----------------------------------------

    Assignee: weldon washburn

> [drlvm][thread] Race condition at thread_java_monitors.c":345 and thread_native_suspend.c":189
> ----------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3896
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3896
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Ilya Leviev
>         Assigned To: weldon washburn
>         Attachments: Source_View_Screenshot-1.jpg
>
>
> [drlvm][thread] Race condition at thread_java_monitors.c":345 and thread_native_suspend.c":189
> TC report on thread unsafe access to "state" field that result in race condition that occur during concurrent execution of jthread_monitor_timed_wait 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_monitors.c":345
> Stack Trace: 
> Context
> 	Function void vm_execute_java_method_array(struct _jmethodID *,union jvalue *,union jvalue *) "ini.cpp":60
> 	Function ExecuteMethod "em_intf.cpp":43
> 	Function void DrlEMImpl::executeMethod(struct _jmethodID *,union jvalue *,union jvalue *) "drlemimpl.cpp":509
> 	Function void JIT_execute_method_default(void *,struct _jmethodID *,union jvalue *,union jvalue *) "ini_ia32.cpp":199
> 	Function vm_invoke_native_array_stub "ini_ia32.cpp":76
> 	Function hythread_thin_monitor_exit "thread_native_thin_monitor.c":416
> 	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 class VM_thread * get_thread_ptr_stub(void) "thread_manager.cpp":138
> 	Function m2n_free_local_handles "m2n_ia32.cpp":268
> 	Function hythread_self "hythread.h":465
> 	Function vm_get_gc_thread_local "c_interface.cpp":2334
> 	Function gc_alloc_fast "gc_for_vm.cpp":178
> 	Function hythread_self "hythread.h":465
> 	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_wait "java_lang_vmthreadmanager.cpp":202
> 	Function jthread_monitor_timed_wait "thread_java_monitors.c":345
> function jthread_monitor_timed_wait "thread_java_monitors.c":345
> "343"	""	"        tm_native_thread->state &= ~TM_THREAD_STATE_WAITING_INDEFINITELY;"
> "344"	""	"     }"
> "345"	"*"	"     tm_native_thread->state |= TM_THREAD_STATE_RUNNABLE;"  
> "346"	""	" "
> 2nd Access
> 	Function void vm_execute_java_method_array(struct _jmethodID *,union jvalue *,union jvalue *) "ini.cpp":60
> 	Function ExecuteMethod "em_intf.cpp":43
> 	Function void DrlEMImpl::executeMethod(struct _jmethodID *,union jvalue *,union jvalue *) "drlemimpl.cpp":509
> 	Function void JIT_execute_method_default(void *,struct _jmethodID *,union jvalue *,union jvalue *) "ini_ia32.cpp":199
> 	Function vm_invoke_native_array_stub "ini_ia32.cpp":76
> 	Function hythread_thin_monitor_exit "thread_native_thin_monitor.c":416
> 	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
> 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;"
> 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.


[jira] Commented: (HARMONY-3896) [drlvm][thread][tc] Race condition at thread_java_monitors.c":345 and thread_native_suspend.c":189

Posted by "Pavel Rebriy (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HARMONY-3896?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12553297 ] 

Pavel Rebriy commented on HARMONY-3896:
---------------------------------------

Regarding revision 603614 code of jthread_monitor_timed_wait() was re-developed and described race condition was remove.
That why I think the bug could be closed.

> [drlvm][thread][tc] Race condition at thread_java_monitors.c":345 and thread_native_suspend.c":189
> --------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3896
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3896
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Ilya Leviev
>            Assignee: weldon washburn
>         Attachments: Source_View_Screenshot-1.jpg
>
>
> [drlvm][thread] Race condition at thread_java_monitors.c":345 and thread_native_suspend.c":189
> TC report on thread unsafe access to "state" field that result in race condition that occur during concurrent execution of jthread_monitor_timed_wait 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_monitors.c":345
> Stack Trace: 
> Context
> 	Function void vm_execute_java_method_array(struct _jmethodID *,union jvalue *,union jvalue *) "ini.cpp":60
> 	Function ExecuteMethod "em_intf.cpp":43
> 	Function void DrlEMImpl::executeMethod(struct _jmethodID *,union jvalue *,union jvalue *) "drlemimpl.cpp":509
> 	Function void JIT_execute_method_default(void *,struct _jmethodID *,union jvalue *,union jvalue *) "ini_ia32.cpp":199
> 	Function vm_invoke_native_array_stub "ini_ia32.cpp":76
> 	Function hythread_thin_monitor_exit "thread_native_thin_monitor.c":416
> 	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 class VM_thread * get_thread_ptr_stub(void) "thread_manager.cpp":138
> 	Function m2n_free_local_handles "m2n_ia32.cpp":268
> 	Function hythread_self "hythread.h":465
> 	Function vm_get_gc_thread_local "c_interface.cpp":2334
> 	Function gc_alloc_fast "gc_for_vm.cpp":178
> 	Function hythread_self "hythread.h":465
> 	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_wait "java_lang_vmthreadmanager.cpp":202
> 	Function jthread_monitor_timed_wait "thread_java_monitors.c":345
> function jthread_monitor_timed_wait "thread_java_monitors.c":345
> "343"	""	"        tm_native_thread->state &= ~TM_THREAD_STATE_WAITING_INDEFINITELY;"
> "344"	""	"     }"
> "345"	"*"	"     tm_native_thread->state |= TM_THREAD_STATE_RUNNABLE;"  
> "346"	""	" "
> 2nd Access
> 	Function void vm_execute_java_method_array(struct _jmethodID *,union jvalue *,union jvalue *) "ini.cpp":60
> 	Function ExecuteMethod "em_intf.cpp":43
> 	Function void DrlEMImpl::executeMethod(struct _jmethodID *,union jvalue *,union jvalue *) "drlemimpl.cpp":509
> 	Function void JIT_execute_method_default(void *,struct _jmethodID *,union jvalue *,union jvalue *) "ini_ia32.cpp":199
> 	Function vm_invoke_native_array_stub "ini_ia32.cpp":76
> 	Function hythread_thin_monitor_exit "thread_native_thin_monitor.c":416
> 	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
> 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;"
> 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.


[jira] Resolved: (HARMONY-3896) [drlvm][thread][tc] Race condition at thread_java_monitors.c":345 and thread_native_suspend.c":189

Posted by "Ilya Leviev (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-3896?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ilya Leviev resolved HARMONY-3896.
----------------------------------

    Resolution: Fixed

> [drlvm][thread][tc] Race condition at thread_java_monitors.c":345 and thread_native_suspend.c":189
> --------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3896
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3896
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Ilya Leviev
>            Assignee: weldon washburn
>         Attachments: Source_View_Screenshot-1.jpg
>
>
> [drlvm][thread] Race condition at thread_java_monitors.c":345 and thread_native_suspend.c":189
> TC report on thread unsafe access to "state" field that result in race condition that occur during concurrent execution of jthread_monitor_timed_wait 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_monitors.c":345
> Stack Trace: 
> Context
> 	Function void vm_execute_java_method_array(struct _jmethodID *,union jvalue *,union jvalue *) "ini.cpp":60
> 	Function ExecuteMethod "em_intf.cpp":43
> 	Function void DrlEMImpl::executeMethod(struct _jmethodID *,union jvalue *,union jvalue *) "drlemimpl.cpp":509
> 	Function void JIT_execute_method_default(void *,struct _jmethodID *,union jvalue *,union jvalue *) "ini_ia32.cpp":199
> 	Function vm_invoke_native_array_stub "ini_ia32.cpp":76
> 	Function hythread_thin_monitor_exit "thread_native_thin_monitor.c":416
> 	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 class VM_thread * get_thread_ptr_stub(void) "thread_manager.cpp":138
> 	Function m2n_free_local_handles "m2n_ia32.cpp":268
> 	Function hythread_self "hythread.h":465
> 	Function vm_get_gc_thread_local "c_interface.cpp":2334
> 	Function gc_alloc_fast "gc_for_vm.cpp":178
> 	Function hythread_self "hythread.h":465
> 	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_wait "java_lang_vmthreadmanager.cpp":202
> 	Function jthread_monitor_timed_wait "thread_java_monitors.c":345
> function jthread_monitor_timed_wait "thread_java_monitors.c":345
> "343"	""	"        tm_native_thread->state &= ~TM_THREAD_STATE_WAITING_INDEFINITELY;"
> "344"	""	"     }"
> "345"	"*"	"     tm_native_thread->state |= TM_THREAD_STATE_RUNNABLE;"  
> "346"	""	" "
> 2nd Access
> 	Function void vm_execute_java_method_array(struct _jmethodID *,union jvalue *,union jvalue *) "ini.cpp":60
> 	Function ExecuteMethod "em_intf.cpp":43
> 	Function void DrlEMImpl::executeMethod(struct _jmethodID *,union jvalue *,union jvalue *) "drlemimpl.cpp":509
> 	Function void JIT_execute_method_default(void *,struct _jmethodID *,union jvalue *,union jvalue *) "ini_ia32.cpp":199
> 	Function vm_invoke_native_array_stub "ini_ia32.cpp":76
> 	Function hythread_thin_monitor_exit "thread_native_thin_monitor.c":416
> 	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
> 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;"
> 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.


[jira] Updated: (HARMONY-3896) [drlvm][thread][tc] Race condition at thread_java_monitors.c":345 and thread_native_suspend.c":189

Posted by "Ilya Leviev (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-3896?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ilya Leviev updated HARMONY-3896:
---------------------------------

    Summary: [drlvm][thread][tc] Race condition at thread_java_monitors.c":345 and thread_native_suspend.c":189  (was: [drlvm][tc][thread] Race condition at thread_java_monitors.c":345 and thread_native_suspend.c":189)

> [drlvm][thread][tc] Race condition at thread_java_monitors.c":345 and thread_native_suspend.c":189
> --------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3896
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3896
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Ilya Leviev
>            Assignee: weldon washburn
>         Attachments: Source_View_Screenshot-1.jpg
>
>
> [drlvm][thread] Race condition at thread_java_monitors.c":345 and thread_native_suspend.c":189
> TC report on thread unsafe access to "state" field that result in race condition that occur during concurrent execution of jthread_monitor_timed_wait 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_monitors.c":345
> Stack Trace: 
> Context
> 	Function void vm_execute_java_method_array(struct _jmethodID *,union jvalue *,union jvalue *) "ini.cpp":60
> 	Function ExecuteMethod "em_intf.cpp":43
> 	Function void DrlEMImpl::executeMethod(struct _jmethodID *,union jvalue *,union jvalue *) "drlemimpl.cpp":509
> 	Function void JIT_execute_method_default(void *,struct _jmethodID *,union jvalue *,union jvalue *) "ini_ia32.cpp":199
> 	Function vm_invoke_native_array_stub "ini_ia32.cpp":76
> 	Function hythread_thin_monitor_exit "thread_native_thin_monitor.c":416
> 	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 class VM_thread * get_thread_ptr_stub(void) "thread_manager.cpp":138
> 	Function m2n_free_local_handles "m2n_ia32.cpp":268
> 	Function hythread_self "hythread.h":465
> 	Function vm_get_gc_thread_local "c_interface.cpp":2334
> 	Function gc_alloc_fast "gc_for_vm.cpp":178
> 	Function hythread_self "hythread.h":465
> 	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_wait "java_lang_vmthreadmanager.cpp":202
> 	Function jthread_monitor_timed_wait "thread_java_monitors.c":345
> function jthread_monitor_timed_wait "thread_java_monitors.c":345
> "343"	""	"        tm_native_thread->state &= ~TM_THREAD_STATE_WAITING_INDEFINITELY;"
> "344"	""	"     }"
> "345"	"*"	"     tm_native_thread->state |= TM_THREAD_STATE_RUNNABLE;"  
> "346"	""	" "
> 2nd Access
> 	Function void vm_execute_java_method_array(struct _jmethodID *,union jvalue *,union jvalue *) "ini.cpp":60
> 	Function ExecuteMethod "em_intf.cpp":43
> 	Function void DrlEMImpl::executeMethod(struct _jmethodID *,union jvalue *,union jvalue *) "drlemimpl.cpp":509
> 	Function void JIT_execute_method_default(void *,struct _jmethodID *,union jvalue *,union jvalue *) "ini_ia32.cpp":199
> 	Function vm_invoke_native_array_stub "ini_ia32.cpp":76
> 	Function hythread_thin_monitor_exit "thread_native_thin_monitor.c":416
> 	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
> 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;"
> 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.


[jira] Commented: (HARMONY-3896) [drlvm][thread] Race condition at thread_java_monitors.c":345 and thread_native_suspend.c":189

Posted by "weldon washburn (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HARMONY-3896?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12497272 ] 

weldon washburn commented on HARMONY-3896:
------------------------------------------

I suspect this bug will be fixed during the cleanup of the native and java data structs that hold thread state.

> [drlvm][thread] Race condition at thread_java_monitors.c":345 and thread_native_suspend.c":189
> ----------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3896
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3896
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Ilya Leviev
>         Assigned To: weldon washburn
>         Attachments: Source_View_Screenshot-1.jpg
>
>
> [drlvm][thread] Race condition at thread_java_monitors.c":345 and thread_native_suspend.c":189
> TC report on thread unsafe access to "state" field that result in race condition that occur during concurrent execution of jthread_monitor_timed_wait 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_monitors.c":345
> Stack Trace: 
> Context
> 	Function void vm_execute_java_method_array(struct _jmethodID *,union jvalue *,union jvalue *) "ini.cpp":60
> 	Function ExecuteMethod "em_intf.cpp":43
> 	Function void DrlEMImpl::executeMethod(struct _jmethodID *,union jvalue *,union jvalue *) "drlemimpl.cpp":509
> 	Function void JIT_execute_method_default(void *,struct _jmethodID *,union jvalue *,union jvalue *) "ini_ia32.cpp":199
> 	Function vm_invoke_native_array_stub "ini_ia32.cpp":76
> 	Function hythread_thin_monitor_exit "thread_native_thin_monitor.c":416
> 	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 class VM_thread * get_thread_ptr_stub(void) "thread_manager.cpp":138
> 	Function m2n_free_local_handles "m2n_ia32.cpp":268
> 	Function hythread_self "hythread.h":465
> 	Function vm_get_gc_thread_local "c_interface.cpp":2334
> 	Function gc_alloc_fast "gc_for_vm.cpp":178
> 	Function hythread_self "hythread.h":465
> 	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_wait "java_lang_vmthreadmanager.cpp":202
> 	Function jthread_monitor_timed_wait "thread_java_monitors.c":345
> function jthread_monitor_timed_wait "thread_java_monitors.c":345
> "343"	""	"        tm_native_thread->state &= ~TM_THREAD_STATE_WAITING_INDEFINITELY;"
> "344"	""	"     }"
> "345"	"*"	"     tm_native_thread->state |= TM_THREAD_STATE_RUNNABLE;"  
> "346"	""	" "
> 2nd Access
> 	Function void vm_execute_java_method_array(struct _jmethodID *,union jvalue *,union jvalue *) "ini.cpp":60
> 	Function ExecuteMethod "em_intf.cpp":43
> 	Function void DrlEMImpl::executeMethod(struct _jmethodID *,union jvalue *,union jvalue *) "drlemimpl.cpp":509
> 	Function void JIT_execute_method_default(void *,struct _jmethodID *,union jvalue *,union jvalue *) "ini_ia32.cpp":199
> 	Function vm_invoke_native_array_stub "ini_ia32.cpp":76
> 	Function hythread_thin_monitor_exit "thread_native_thin_monitor.c":416
> 	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
> 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;"
> 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.


[jira] Closed: (HARMONY-3896) [drlvm][thread][tc] Race condition at thread_java_monitors.c":345 and thread_native_suspend.c":189

Posted by "Ilya Leviev (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-3896?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ilya Leviev closed HARMONY-3896.
--------------------------------


> [drlvm][thread][tc] Race condition at thread_java_monitors.c":345 and thread_native_suspend.c":189
> --------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3896
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3896
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Ilya Leviev
>            Assignee: weldon washburn
>         Attachments: Source_View_Screenshot-1.jpg
>
>
> [drlvm][thread] Race condition at thread_java_monitors.c":345 and thread_native_suspend.c":189
> TC report on thread unsafe access to "state" field that result in race condition that occur during concurrent execution of jthread_monitor_timed_wait 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_monitors.c":345
> Stack Trace: 
> Context
> 	Function void vm_execute_java_method_array(struct _jmethodID *,union jvalue *,union jvalue *) "ini.cpp":60
> 	Function ExecuteMethod "em_intf.cpp":43
> 	Function void DrlEMImpl::executeMethod(struct _jmethodID *,union jvalue *,union jvalue *) "drlemimpl.cpp":509
> 	Function void JIT_execute_method_default(void *,struct _jmethodID *,union jvalue *,union jvalue *) "ini_ia32.cpp":199
> 	Function vm_invoke_native_array_stub "ini_ia32.cpp":76
> 	Function hythread_thin_monitor_exit "thread_native_thin_monitor.c":416
> 	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 class VM_thread * get_thread_ptr_stub(void) "thread_manager.cpp":138
> 	Function m2n_free_local_handles "m2n_ia32.cpp":268
> 	Function hythread_self "hythread.h":465
> 	Function vm_get_gc_thread_local "c_interface.cpp":2334
> 	Function gc_alloc_fast "gc_for_vm.cpp":178
> 	Function hythread_self "hythread.h":465
> 	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_wait "java_lang_vmthreadmanager.cpp":202
> 	Function jthread_monitor_timed_wait "thread_java_monitors.c":345
> function jthread_monitor_timed_wait "thread_java_monitors.c":345
> "343"	""	"        tm_native_thread->state &= ~TM_THREAD_STATE_WAITING_INDEFINITELY;"
> "344"	""	"     }"
> "345"	"*"	"     tm_native_thread->state |= TM_THREAD_STATE_RUNNABLE;"  
> "346"	""	" "
> 2nd Access
> 	Function void vm_execute_java_method_array(struct _jmethodID *,union jvalue *,union jvalue *) "ini.cpp":60
> 	Function ExecuteMethod "em_intf.cpp":43
> 	Function void DrlEMImpl::executeMethod(struct _jmethodID *,union jvalue *,union jvalue *) "drlemimpl.cpp":509
> 	Function void JIT_execute_method_default(void *,struct _jmethodID *,union jvalue *,union jvalue *) "ini_ia32.cpp":199
> 	Function vm_invoke_native_array_stub "ini_ia32.cpp":76
> 	Function hythread_thin_monitor_exit "thread_native_thin_monitor.c":416
> 	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
> 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;"
> 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.


[jira] Updated: (HARMONY-3896) [drlvm][tc][thread] Race condition at thread_java_monitors.c":345 and thread_native_suspend.c":189

Posted by "Ilya Leviev (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-3896?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ilya Leviev updated HARMONY-3896:
---------------------------------

    Summary: [drlvm][tc][thread] Race condition at thread_java_monitors.c":345 and thread_native_suspend.c":189  (was: [drlvm][thread] Race condition at thread_java_monitors.c":345 and thread_native_suspend.c":189)

> [drlvm][tc][thread] Race condition at thread_java_monitors.c":345 and thread_native_suspend.c":189
> --------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3896
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3896
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Ilya Leviev
>            Assignee: weldon washburn
>         Attachments: Source_View_Screenshot-1.jpg
>
>
> [drlvm][thread] Race condition at thread_java_monitors.c":345 and thread_native_suspend.c":189
> TC report on thread unsafe access to "state" field that result in race condition that occur during concurrent execution of jthread_monitor_timed_wait 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_monitors.c":345
> Stack Trace: 
> Context
> 	Function void vm_execute_java_method_array(struct _jmethodID *,union jvalue *,union jvalue *) "ini.cpp":60
> 	Function ExecuteMethod "em_intf.cpp":43
> 	Function void DrlEMImpl::executeMethod(struct _jmethodID *,union jvalue *,union jvalue *) "drlemimpl.cpp":509
> 	Function void JIT_execute_method_default(void *,struct _jmethodID *,union jvalue *,union jvalue *) "ini_ia32.cpp":199
> 	Function vm_invoke_native_array_stub "ini_ia32.cpp":76
> 	Function hythread_thin_monitor_exit "thread_native_thin_monitor.c":416
> 	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 class VM_thread * get_thread_ptr_stub(void) "thread_manager.cpp":138
> 	Function m2n_free_local_handles "m2n_ia32.cpp":268
> 	Function hythread_self "hythread.h":465
> 	Function vm_get_gc_thread_local "c_interface.cpp":2334
> 	Function gc_alloc_fast "gc_for_vm.cpp":178
> 	Function hythread_self "hythread.h":465
> 	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_wait "java_lang_vmthreadmanager.cpp":202
> 	Function jthread_monitor_timed_wait "thread_java_monitors.c":345
> function jthread_monitor_timed_wait "thread_java_monitors.c":345
> "343"	""	"        tm_native_thread->state &= ~TM_THREAD_STATE_WAITING_INDEFINITELY;"
> "344"	""	"     }"
> "345"	"*"	"     tm_native_thread->state |= TM_THREAD_STATE_RUNNABLE;"  
> "346"	""	" "
> 2nd Access
> 	Function void vm_execute_java_method_array(struct _jmethodID *,union jvalue *,union jvalue *) "ini.cpp":60
> 	Function ExecuteMethod "em_intf.cpp":43
> 	Function void DrlEMImpl::executeMethod(struct _jmethodID *,union jvalue *,union jvalue *) "drlemimpl.cpp":509
> 	Function void JIT_execute_method_default(void *,struct _jmethodID *,union jvalue *,union jvalue *) "ini_ia32.cpp":199
> 	Function vm_invoke_native_array_stub "ini_ia32.cpp":76
> 	Function hythread_thin_monitor_exit "thread_native_thin_monitor.c":416
> 	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
> 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;"
> 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.


[jira] Updated: (HARMONY-3896) [drlvm][thread] Race condition at thread_java_monitors.c":345 and thread_native_suspend.c":189

Posted by "Ilya Leviev (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-3896?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ilya Leviev updated HARMONY-3896:
---------------------------------

    Attachment: Source_View_Screenshot-1.jpg

Source View screenshot added

> [drlvm][thread] Race condition at thread_java_monitors.c":345 and thread_native_suspend.c":189
> ----------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3896
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3896
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Ilya Leviev
>         Attachments: Source_View_Screenshot-1.jpg
>
>
> [drlvm][thread] Race condition at thread_java_monitors.c":345 and thread_native_suspend.c":189
> TC report on thread unsafe access to "state" field that result in race condition that occur during concurrent execution of jthread_monitor_timed_wait 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_monitors.c":345
> Stack Trace: 
> Context
> 	Function void vm_execute_java_method_array(struct _jmethodID *,union jvalue *,union jvalue *) "ini.cpp":60
> 	Function ExecuteMethod "em_intf.cpp":43
> 	Function void DrlEMImpl::executeMethod(struct _jmethodID *,union jvalue *,union jvalue *) "drlemimpl.cpp":509
> 	Function void JIT_execute_method_default(void *,struct _jmethodID *,union jvalue *,union jvalue *) "ini_ia32.cpp":199
> 	Function vm_invoke_native_array_stub "ini_ia32.cpp":76
> 	Function hythread_thin_monitor_exit "thread_native_thin_monitor.c":416
> 	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 class VM_thread * get_thread_ptr_stub(void) "thread_manager.cpp":138
> 	Function m2n_free_local_handles "m2n_ia32.cpp":268
> 	Function hythread_self "hythread.h":465
> 	Function vm_get_gc_thread_local "c_interface.cpp":2334
> 	Function gc_alloc_fast "gc_for_vm.cpp":178
> 	Function hythread_self "hythread.h":465
> 	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_wait "java_lang_vmthreadmanager.cpp":202
> 	Function jthread_monitor_timed_wait "thread_java_monitors.c":345
> function jthread_monitor_timed_wait "thread_java_monitors.c":345
> "343"	""	"        tm_native_thread->state &= ~TM_THREAD_STATE_WAITING_INDEFINITELY;"
> "344"	""	"     }"
> "345"	"*"	"     tm_native_thread->state |= TM_THREAD_STATE_RUNNABLE;"  
> "346"	""	" "
> 2nd Access
> 	Function void vm_execute_java_method_array(struct _jmethodID *,union jvalue *,union jvalue *) "ini.cpp":60
> 	Function ExecuteMethod "em_intf.cpp":43
> 	Function void DrlEMImpl::executeMethod(struct _jmethodID *,union jvalue *,union jvalue *) "drlemimpl.cpp":509
> 	Function void JIT_execute_method_default(void *,struct _jmethodID *,union jvalue *,union jvalue *) "ini_ia32.cpp":199
> 	Function vm_invoke_native_array_stub "ini_ia32.cpp":76
> 	Function hythread_thin_monitor_exit "thread_native_thin_monitor.c":416
> 	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
> 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;"
> 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.