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/06/07 20:21:26 UTC

[jira] Resolved: (HARMONY-4071) [drlvm][classloader][tc] Known/proven race conditions markup at class.h:(1781/1782) at instance_allocated function

     [ https://issues.apache.org/jira/browse/HARMONY-4071?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gregory Shimansky resolved HARMONY-4071.
----------------------------------------

    Resolution: Fixed

Patch applied at 545254. Please check that it works.

> [drlvm][classloader][tc] Known/proven race conditions markup at class.h:(1781/1782) at instance_allocated function
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4071
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4071
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Ilya Leviev
>            Assignee: Gregory Shimansky
>         Attachments: HARMONY-4071_add_markup.patch, SourceViewScreenshot-1.jpg
>
>
> Known/proven race conditions markup at class.h:(1781/1782) at instance_allocated function
> TC report on thread unsafe access that result in race condition that occur during concurrent execution of instance_allocated function. 
> As issues related to vm statistic data collection in debug mode I have marked it by special API for prevention of further alarms on this races. 
> data-races
> 1)Write -> Write data-race	
> Memory write at "class.h":1781 conflicts with a prior memory write at "class.h":1781
> 2)Write -> Write data-race
> Memory write at "class.h":1782 conflicts with a prior memory write at "class.h":1782
> Stack Trace: 
> Context
> 	Function vm_get_gc_thread_local "c_interface.cpp":2414
> 	Function gc_alloc_fast "mutator_alloc.cpp":120
> 	Function struct ManagedObject * struct_Class_to_java_lang_Class(struct Class *) "class.cpp":778
> 	Function unsigned int class_is_subtype(struct Class *,struct Class *) "jit_runtime_support.cpp":3199
> 	Function class VM_thread * get_thread_ptr_stub(void) "thread_manager.cpp":138
> 	Function hythread_suspend_enable "hythread_ext.h":373
> 	Function Java_java_lang_VMMemoryManager_clone "java_lang_vmmemorymanager.cpp":59
> 	Function object_clone "object_generic.cpp":148
> 	Function struct ManagedObject * Class::allocate_instance(void) "class.cpp":486
> 	Function void Class::instance_allocated(unsigned int) "class.h":1780
> 1st Access
> 	Function gc_alloc_fast "mutator_alloc.cpp":120
> 	Function is_class_initialized "jit_runtime_support.cpp":702
> 	Function struct ManagedObject * struct_Class_to_java_lang_Class(struct Class *) "class.cpp":778
> 	Function unsigned int class_is_subtype(struct Class *,struct Class *) "jit_runtime_support.cpp":3199
> 	Function class VM_thread * get_thread_ptr_stub(void) "thread_manager.cpp":138
> 	Function hythread_suspend_enable "hythread_ext.h":373
> 	Function Java_java_lang_VMMemoryManager_clone "java_lang_vmmemorymanager.cpp":59
> 	Function object_clone "object_generic.cpp":148
> 	Function struct ManagedObject * Class::allocate_instance(void) "class.cpp":486
> 	Function void Class::instance_allocated(unsigned int) "class.h":1781
> 	"1,779"	""	"     * @param[in] size - a size of an allocated instance*/"
> 	"1,780"	""	"     void instance_allocated(unsigned size) {"
> 	"1,781"	"*"	"         m_num_allocations++;"
> 	"1,782"	"*"	"         m_num_bytes_allocated += size;"
> 	"1,783"	""	"     }"
> 	"1,784"	""	" "
> 2nd Access
> 	Function vm_get_gc_thread_local "c_interface.cpp":2414
> 	Function gc_alloc_fast "mutator_alloc.cpp":120
> 	Function struct ManagedObject * struct_Class_to_java_lang_Class(struct Class *) "class.cpp":778
> 	Function unsigned int class_is_subtype(struct Class *,struct Class *) "jit_runtime_support.cpp":3199
> 	Function class VM_thread * get_thread_ptr_stub(void) "thread_manager.cpp":138
> 	Function hythread_suspend_enable "hythread_ext.h":373
> 	Function Java_java_lang_VMMemoryManager_clone "java_lang_vmmemorymanager.cpp":59
> 	Function object_clone "object_generic.cpp":148
> 	Function struct ManagedObject * Class::allocate_instance(void) "class.cpp":486
> 	Function void Class::instance_allocated(unsigned int) "class.h":1781
> 	"1,779"	""	"     * @param[in] size - a size of an allocated instance*/"
> 	"1,780"	""	"     void instance_allocated(unsigned size) {"
> 	"1,781"	"*"	"         m_num_allocations++;"
> 	"1,782"	"*"	"         m_num_bytes_allocated += size;"
> 	"1,783"	""	"     }"
> 	"1,784"	""	" "
> 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.