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/21 13:26:26 UTC

[jira] Created: (HARMONY-4260) [drlvm][classloader] Race conditions at "java_type.cpp":(140-134) at load_type_desc() on reliability test ClassReflectionTest

[drlvm][classloader] Race conditions at "java_type.cpp":(140-134) at load_type_desc() on reliability test ClassReflectionTest
-----------------------------------------------------------------------------------------------------------------------------

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


Race conditions at "java_type.cpp":(140-134) at load_type_desc() function while reliability test ClassReflectionTest execution


TC report on thread unsafe access that result in race condition that occur during concurrent execution of load_type_desc() function 


if it low priority issue I will mark it as expected race condition. 



1) Write -> Write data-race	Memory write at "java_type.cpp":140 conflicts with a prior memory write at "java_type.cpp":140
2) Write -> Write data-race	Memory write at "java_type.cpp":134 conflicts with a prior memory write at "java_type.cpp":134



1) Write -> Write data-race	Memory write at "java_type.cpp":140 conflicts with a prior memory write at "java_type.cpp":140


Stack Trace: 


Context
	Function class_is_subtype "jit_runtime_support.cpp":3202
	Function get_thread_ptr_stub "thread_manager.cpp":138
	Function hythread_suspend_disable "hythread_ext.h":427
	Function m2n_pop_local_handles "m2n_ia32.cpp":257
	Function get_thread_ptr_stub "thread_manager.cpp":138
	Function hythread_suspend_enable "hythread_ext.h":376
	Function Java_java_lang_reflect_VMReflection_getMethodReturnType "java_lang_reflect_vmreflection.cpp":87
	Function descriptor_to_jclass "reflection.cpp":39
	Function type_info_get_class "c_interface.cpp":2070
	Function TypeDesc::load_type_desc "java_type.cpp":114

Definition
	Function Class::parse_fields "class_file_loader.cpp":2291
	Function Field::parse "class_file_loader.cpp":786
	Function Field::parse "class_file_loader.cpp":1113
	Function type_desc_create_from_java_descriptor "java_type.cpp":81
	Function TypeDesc::type_desc_create_vector "java_type.cpp":163
	Function operator new "newop.cpp":12
	Function malloc "dbgheap.c":139
	Function nh_malloc_dbg "dbgheap.c":260
	Function heap_alloc_dbg "dbgheap.c":397
	Function heap_alloc_base "malloc.c":211

1st Access
	Function class_is_subtype "jit_runtime_support.cpp":3202
	Function get_thread_ptr_stub "thread_manager.cpp":138
	Function hythread_suspend_disable "hythread_ext.h":427
	Function m2n_pop_local_handles "m2n_ia32.cpp":257
	Function get_thread_ptr_stub "thread_manager.cpp":138
	Function hythread_suspend_enable "hythread_ext.h":376
	Function Java_java_lang_reflect_VMReflection_getMethodReturnType "java_lang_reflect_vmreflection.cpp":87
	Function descriptor_to_jclass "reflection.cpp":39
	Function type_info_get_class "c_interface.cpp":2070
	Function TypeDesc::load_type_desc "java_type.cpp":140

	"139"	""	"         if (!element_clss) return NULL;"
	"140"	"*"	"         clss = resolve_class_array_of_class1(env, element_clss);"
	"141"	""	"         return clss;"


2nd Access
	Function class_is_subtype "jit_runtime_support.cpp":3202
	Function get_thread_ptr_stub "thread_manager.cpp":138
	Function hythread_suspend_disable "hythread_ext.h":427
	Function m2n_pop_local_handles "m2n_ia32.cpp":257
	Function get_thread_ptr_stub "thread_manager.cpp":138
	Function hythread_suspend_enable "hythread_ext.h":376
	Function Java_java_lang_reflect_VMReflection_getMethodReturnType "java_lang_reflect_vmreflection.cpp":87
	Function descriptor_to_jclass "reflection.cpp":39
	Function type_info_get_class "c_interface.cpp":2070
	Function TypeDesc::load_type_desc "java_type.cpp":140

	"139"	""	"         if (!element_clss) return NULL;"
	"140"	"*"	"         clss = resolve_class_array_of_class1(env, element_clss);"
	"141"	""	"         return clss;"


See also Source View screenshots. 




2) Write -> Write data-race	Memory write at "java_type.cpp":134 conflicts with a prior memory write at "java_type.cpp":134



Context
	Function get_thread_ptr_stub "thread_manager.cpp":138
	Function hythread_suspend_disable "hythread_ext.h":427
	Function m2n_pop_local_handles "m2n_ia32.cpp":257
	Function get_thread_ptr_stub "thread_manager.cpp":138
	Function hythread_suspend_enable "hythread_ext.h":376
	Function Java_java_lang_reflect_VMReflection_getMethodReturnType "java_lang_reflect_vmreflection.cpp":87
	Function descriptor_to_jclass "reflection.cpp":39
	Function type_info_get_class "c_interface.cpp":2070
	Function TypeDesc::load_type_desc "java_type.cpp":138
	Function TypeDesc::load_type_desc "java_type.cpp":114

Definition
	Function Class::parse_fields "class_file_loader.cpp":2291
	Function Field::parse "class_file_loader.cpp":786
	Function Field::parse "class_file_loader.cpp":1113
	Function type_desc_create_from_java_descriptor "java_type.cpp":77
	Function type_desc_create_from_java_descriptor "java_type.cpp":68
	Function operator new "newop.cpp":12
	Function malloc "dbgheap.c":139
	Function nh_malloc_dbg "dbgheap.c":260
	Function heap_alloc_dbg "dbgheap.c":397
	Function heap_alloc_base "malloc.c":211

1st Access
	Function get_thread_ptr_stub "thread_manager.cpp":138
	Function hythread_suspend_disable "hythread_ext.h":427
	Function m2n_pop_local_handles "m2n_ia32.cpp":257
	Function get_thread_ptr_stub "thread_manager.cpp":138
	Function hythread_suspend_enable "hythread_ext.h":376
	Function Java_java_lang_reflect_VMReflection_getMethodReturnType "java_lang_reflect_vmreflection.cpp":87
	Function descriptor_to_jclass "reflection.cpp":39
	Function type_info_get_class "c_interface.cpp":2070
	Function TypeDesc::load_type_desc "java_type.cpp":138
	Function TypeDesc::load_type_desc "java_type.cpp":134

	"133"	""	"         //c = loader->LoadVerifyAndPrepareClass(env, name);"
	"134"	"*"	"         clss = loader->LoadClass(env, name);"
	"135"	"*"	"         return clss;"




2nd Access
	Function get_thread_ptr_stub "thread_manager.cpp":138
	Function hythread_suspend_disable "hythread_ext.h":427
	Function m2n_pop_local_handles "m2n_ia32.cpp":257
	Function get_thread_ptr_stub "thread_manager.cpp":138
	Function hythread_suspend_enable "hythread_ext.h":376
	Function Java_java_lang_reflect_VMReflection_getMethodReturnType "java_lang_reflect_vmreflection.cpp":87
	Function descriptor_to_jclass "reflection.cpp":39
	Function type_info_get_class "c_interface.cpp":2070
	Function TypeDesc::load_type_desc "java_type.cpp":138
	Function TypeDesc::load_type_desc "java_type.cpp":134


	"133"	""	"         //c = loader->LoadVerifyAndPrepareClass(env, name);"
	"134"	"*"	"         clss = loader->LoadClass(env, name);"
	"135"	"*"	"         return clss;"



See also Source View screenshots. 





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


[jira] Updated: (HARMONY-4260) [drlvm][classloader] Race conditions at "java_type.cpp":(140-134) at load_type_desc() on reliability test ClassReflectionTest

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

Ilya Leviev updated HARMONY-4260:
---------------------------------

    Attachment: SourceViewScreenshot-2.jpg

> [drlvm][classloader] Race conditions at "java_type.cpp":(140-134) at load_type_desc() on reliability test ClassReflectionTest
> -----------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4260
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4260
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Ilya Leviev
>            Priority: Minor
>         Attachments: SourceViewscreenshot-1.jpg, SourceViewScreenshot-2.jpg
>
>
> Race conditions at "java_type.cpp":(140-134) at load_type_desc() function while reliability test ClassReflectionTest execution
> TC report on thread unsafe access that result in race condition that occur during concurrent execution of load_type_desc() function 
> if it low priority issue I will mark it as expected race condition. 
> 1) Write -> Write data-race	Memory write at "java_type.cpp":140 conflicts with a prior memory write at "java_type.cpp":140
> 2) Write -> Write data-race	Memory write at "java_type.cpp":134 conflicts with a prior memory write at "java_type.cpp":134
> 1) Write -> Write data-race	Memory write at "java_type.cpp":140 conflicts with a prior memory write at "java_type.cpp":140
> Stack Trace: 
> Context
> 	Function class_is_subtype "jit_runtime_support.cpp":3202
> 	Function get_thread_ptr_stub "thread_manager.cpp":138
> 	Function hythread_suspend_disable "hythread_ext.h":427
> 	Function m2n_pop_local_handles "m2n_ia32.cpp":257
> 	Function get_thread_ptr_stub "thread_manager.cpp":138
> 	Function hythread_suspend_enable "hythread_ext.h":376
> 	Function Java_java_lang_reflect_VMReflection_getMethodReturnType "java_lang_reflect_vmreflection.cpp":87
> 	Function descriptor_to_jclass "reflection.cpp":39
> 	Function type_info_get_class "c_interface.cpp":2070
> 	Function TypeDesc::load_type_desc "java_type.cpp":114
> Definition
> 	Function Class::parse_fields "class_file_loader.cpp":2291
> 	Function Field::parse "class_file_loader.cpp":786
> 	Function Field::parse "class_file_loader.cpp":1113
> 	Function type_desc_create_from_java_descriptor "java_type.cpp":81
> 	Function TypeDesc::type_desc_create_vector "java_type.cpp":163
> 	Function operator new "newop.cpp":12
> 	Function malloc "dbgheap.c":139
> 	Function nh_malloc_dbg "dbgheap.c":260
> 	Function heap_alloc_dbg "dbgheap.c":397
> 	Function heap_alloc_base "malloc.c":211
> 1st Access
> 	Function class_is_subtype "jit_runtime_support.cpp":3202
> 	Function get_thread_ptr_stub "thread_manager.cpp":138
> 	Function hythread_suspend_disable "hythread_ext.h":427
> 	Function m2n_pop_local_handles "m2n_ia32.cpp":257
> 	Function get_thread_ptr_stub "thread_manager.cpp":138
> 	Function hythread_suspend_enable "hythread_ext.h":376
> 	Function Java_java_lang_reflect_VMReflection_getMethodReturnType "java_lang_reflect_vmreflection.cpp":87
> 	Function descriptor_to_jclass "reflection.cpp":39
> 	Function type_info_get_class "c_interface.cpp":2070
> 	Function TypeDesc::load_type_desc "java_type.cpp":140
> 	"139"	""	"         if (!element_clss) return NULL;"
> 	"140"	"*"	"         clss = resolve_class_array_of_class1(env, element_clss);"
> 	"141"	""	"         return clss;"
> 2nd Access
> 	Function class_is_subtype "jit_runtime_support.cpp":3202
> 	Function get_thread_ptr_stub "thread_manager.cpp":138
> 	Function hythread_suspend_disable "hythread_ext.h":427
> 	Function m2n_pop_local_handles "m2n_ia32.cpp":257
> 	Function get_thread_ptr_stub "thread_manager.cpp":138
> 	Function hythread_suspend_enable "hythread_ext.h":376
> 	Function Java_java_lang_reflect_VMReflection_getMethodReturnType "java_lang_reflect_vmreflection.cpp":87
> 	Function descriptor_to_jclass "reflection.cpp":39
> 	Function type_info_get_class "c_interface.cpp":2070
> 	Function TypeDesc::load_type_desc "java_type.cpp":140
> 	"139"	""	"         if (!element_clss) return NULL;"
> 	"140"	"*"	"         clss = resolve_class_array_of_class1(env, element_clss);"
> 	"141"	""	"         return clss;"
> See also Source View screenshots. 
> 2) Write -> Write data-race	Memory write at "java_type.cpp":134 conflicts with a prior memory write at "java_type.cpp":134
> Context
> 	Function get_thread_ptr_stub "thread_manager.cpp":138
> 	Function hythread_suspend_disable "hythread_ext.h":427
> 	Function m2n_pop_local_handles "m2n_ia32.cpp":257
> 	Function get_thread_ptr_stub "thread_manager.cpp":138
> 	Function hythread_suspend_enable "hythread_ext.h":376
> 	Function Java_java_lang_reflect_VMReflection_getMethodReturnType "java_lang_reflect_vmreflection.cpp":87
> 	Function descriptor_to_jclass "reflection.cpp":39
> 	Function type_info_get_class "c_interface.cpp":2070
> 	Function TypeDesc::load_type_desc "java_type.cpp":138
> 	Function TypeDesc::load_type_desc "java_type.cpp":114
> Definition
> 	Function Class::parse_fields "class_file_loader.cpp":2291
> 	Function Field::parse "class_file_loader.cpp":786
> 	Function Field::parse "class_file_loader.cpp":1113
> 	Function type_desc_create_from_java_descriptor "java_type.cpp":77
> 	Function type_desc_create_from_java_descriptor "java_type.cpp":68
> 	Function operator new "newop.cpp":12
> 	Function malloc "dbgheap.c":139
> 	Function nh_malloc_dbg "dbgheap.c":260
> 	Function heap_alloc_dbg "dbgheap.c":397
> 	Function heap_alloc_base "malloc.c":211
> 1st Access
> 	Function get_thread_ptr_stub "thread_manager.cpp":138
> 	Function hythread_suspend_disable "hythread_ext.h":427
> 	Function m2n_pop_local_handles "m2n_ia32.cpp":257
> 	Function get_thread_ptr_stub "thread_manager.cpp":138
> 	Function hythread_suspend_enable "hythread_ext.h":376
> 	Function Java_java_lang_reflect_VMReflection_getMethodReturnType "java_lang_reflect_vmreflection.cpp":87
> 	Function descriptor_to_jclass "reflection.cpp":39
> 	Function type_info_get_class "c_interface.cpp":2070
> 	Function TypeDesc::load_type_desc "java_type.cpp":138
> 	Function TypeDesc::load_type_desc "java_type.cpp":134
> 	"133"	""	"         //c = loader->LoadVerifyAndPrepareClass(env, name);"
> 	"134"	"*"	"         clss = loader->LoadClass(env, name);"
> 	"135"	"*"	"         return clss;"
> 2nd Access
> 	Function get_thread_ptr_stub "thread_manager.cpp":138
> 	Function hythread_suspend_disable "hythread_ext.h":427
> 	Function m2n_pop_local_handles "m2n_ia32.cpp":257
> 	Function get_thread_ptr_stub "thread_manager.cpp":138
> 	Function hythread_suspend_enable "hythread_ext.h":376
> 	Function Java_java_lang_reflect_VMReflection_getMethodReturnType "java_lang_reflect_vmreflection.cpp":87
> 	Function descriptor_to_jclass "reflection.cpp":39
> 	Function type_info_get_class "c_interface.cpp":2070
> 	Function TypeDesc::load_type_desc "java_type.cpp":138
> 	Function TypeDesc::load_type_desc "java_type.cpp":134
> 	"133"	""	"         //c = loader->LoadVerifyAndPrepareClass(env, name);"
> 	"134"	"*"	"         clss = loader->LoadClass(env, name);"
> 	"135"	"*"	"         return clss;"
> See also Source View screenshots. 

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


[jira] Updated: (HARMONY-4260) [drlvm][classloader] Race conditions at "java_type.cpp":(140-134) at load_type_desc() on reliability test ClassReflectionTest

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

Ilya Leviev updated HARMONY-4260:
---------------------------------

    Attachment: SourceViewscreenshot-1.jpg

> [drlvm][classloader] Race conditions at "java_type.cpp":(140-134) at load_type_desc() on reliability test ClassReflectionTest
> -----------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4260
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4260
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Ilya Leviev
>            Priority: Minor
>         Attachments: SourceViewscreenshot-1.jpg
>
>
> Race conditions at "java_type.cpp":(140-134) at load_type_desc() function while reliability test ClassReflectionTest execution
> TC report on thread unsafe access that result in race condition that occur during concurrent execution of load_type_desc() function 
> if it low priority issue I will mark it as expected race condition. 
> 1) Write -> Write data-race	Memory write at "java_type.cpp":140 conflicts with a prior memory write at "java_type.cpp":140
> 2) Write -> Write data-race	Memory write at "java_type.cpp":134 conflicts with a prior memory write at "java_type.cpp":134
> 1) Write -> Write data-race	Memory write at "java_type.cpp":140 conflicts with a prior memory write at "java_type.cpp":140
> Stack Trace: 
> Context
> 	Function class_is_subtype "jit_runtime_support.cpp":3202
> 	Function get_thread_ptr_stub "thread_manager.cpp":138
> 	Function hythread_suspend_disable "hythread_ext.h":427
> 	Function m2n_pop_local_handles "m2n_ia32.cpp":257
> 	Function get_thread_ptr_stub "thread_manager.cpp":138
> 	Function hythread_suspend_enable "hythread_ext.h":376
> 	Function Java_java_lang_reflect_VMReflection_getMethodReturnType "java_lang_reflect_vmreflection.cpp":87
> 	Function descriptor_to_jclass "reflection.cpp":39
> 	Function type_info_get_class "c_interface.cpp":2070
> 	Function TypeDesc::load_type_desc "java_type.cpp":114
> Definition
> 	Function Class::parse_fields "class_file_loader.cpp":2291
> 	Function Field::parse "class_file_loader.cpp":786
> 	Function Field::parse "class_file_loader.cpp":1113
> 	Function type_desc_create_from_java_descriptor "java_type.cpp":81
> 	Function TypeDesc::type_desc_create_vector "java_type.cpp":163
> 	Function operator new "newop.cpp":12
> 	Function malloc "dbgheap.c":139
> 	Function nh_malloc_dbg "dbgheap.c":260
> 	Function heap_alloc_dbg "dbgheap.c":397
> 	Function heap_alloc_base "malloc.c":211
> 1st Access
> 	Function class_is_subtype "jit_runtime_support.cpp":3202
> 	Function get_thread_ptr_stub "thread_manager.cpp":138
> 	Function hythread_suspend_disable "hythread_ext.h":427
> 	Function m2n_pop_local_handles "m2n_ia32.cpp":257
> 	Function get_thread_ptr_stub "thread_manager.cpp":138
> 	Function hythread_suspend_enable "hythread_ext.h":376
> 	Function Java_java_lang_reflect_VMReflection_getMethodReturnType "java_lang_reflect_vmreflection.cpp":87
> 	Function descriptor_to_jclass "reflection.cpp":39
> 	Function type_info_get_class "c_interface.cpp":2070
> 	Function TypeDesc::load_type_desc "java_type.cpp":140
> 	"139"	""	"         if (!element_clss) return NULL;"
> 	"140"	"*"	"         clss = resolve_class_array_of_class1(env, element_clss);"
> 	"141"	""	"         return clss;"
> 2nd Access
> 	Function class_is_subtype "jit_runtime_support.cpp":3202
> 	Function get_thread_ptr_stub "thread_manager.cpp":138
> 	Function hythread_suspend_disable "hythread_ext.h":427
> 	Function m2n_pop_local_handles "m2n_ia32.cpp":257
> 	Function get_thread_ptr_stub "thread_manager.cpp":138
> 	Function hythread_suspend_enable "hythread_ext.h":376
> 	Function Java_java_lang_reflect_VMReflection_getMethodReturnType "java_lang_reflect_vmreflection.cpp":87
> 	Function descriptor_to_jclass "reflection.cpp":39
> 	Function type_info_get_class "c_interface.cpp":2070
> 	Function TypeDesc::load_type_desc "java_type.cpp":140
> 	"139"	""	"         if (!element_clss) return NULL;"
> 	"140"	"*"	"         clss = resolve_class_array_of_class1(env, element_clss);"
> 	"141"	""	"         return clss;"
> See also Source View screenshots. 
> 2) Write -> Write data-race	Memory write at "java_type.cpp":134 conflicts with a prior memory write at "java_type.cpp":134
> Context
> 	Function get_thread_ptr_stub "thread_manager.cpp":138
> 	Function hythread_suspend_disable "hythread_ext.h":427
> 	Function m2n_pop_local_handles "m2n_ia32.cpp":257
> 	Function get_thread_ptr_stub "thread_manager.cpp":138
> 	Function hythread_suspend_enable "hythread_ext.h":376
> 	Function Java_java_lang_reflect_VMReflection_getMethodReturnType "java_lang_reflect_vmreflection.cpp":87
> 	Function descriptor_to_jclass "reflection.cpp":39
> 	Function type_info_get_class "c_interface.cpp":2070
> 	Function TypeDesc::load_type_desc "java_type.cpp":138
> 	Function TypeDesc::load_type_desc "java_type.cpp":114
> Definition
> 	Function Class::parse_fields "class_file_loader.cpp":2291
> 	Function Field::parse "class_file_loader.cpp":786
> 	Function Field::parse "class_file_loader.cpp":1113
> 	Function type_desc_create_from_java_descriptor "java_type.cpp":77
> 	Function type_desc_create_from_java_descriptor "java_type.cpp":68
> 	Function operator new "newop.cpp":12
> 	Function malloc "dbgheap.c":139
> 	Function nh_malloc_dbg "dbgheap.c":260
> 	Function heap_alloc_dbg "dbgheap.c":397
> 	Function heap_alloc_base "malloc.c":211
> 1st Access
> 	Function get_thread_ptr_stub "thread_manager.cpp":138
> 	Function hythread_suspend_disable "hythread_ext.h":427
> 	Function m2n_pop_local_handles "m2n_ia32.cpp":257
> 	Function get_thread_ptr_stub "thread_manager.cpp":138
> 	Function hythread_suspend_enable "hythread_ext.h":376
> 	Function Java_java_lang_reflect_VMReflection_getMethodReturnType "java_lang_reflect_vmreflection.cpp":87
> 	Function descriptor_to_jclass "reflection.cpp":39
> 	Function type_info_get_class "c_interface.cpp":2070
> 	Function TypeDesc::load_type_desc "java_type.cpp":138
> 	Function TypeDesc::load_type_desc "java_type.cpp":134
> 	"133"	""	"         //c = loader->LoadVerifyAndPrepareClass(env, name);"
> 	"134"	"*"	"         clss = loader->LoadClass(env, name);"
> 	"135"	"*"	"         return clss;"
> 2nd Access
> 	Function get_thread_ptr_stub "thread_manager.cpp":138
> 	Function hythread_suspend_disable "hythread_ext.h":427
> 	Function m2n_pop_local_handles "m2n_ia32.cpp":257
> 	Function get_thread_ptr_stub "thread_manager.cpp":138
> 	Function hythread_suspend_enable "hythread_ext.h":376
> 	Function Java_java_lang_reflect_VMReflection_getMethodReturnType "java_lang_reflect_vmreflection.cpp":87
> 	Function descriptor_to_jclass "reflection.cpp":39
> 	Function type_info_get_class "c_interface.cpp":2070
> 	Function TypeDesc::load_type_desc "java_type.cpp":138
> 	Function TypeDesc::load_type_desc "java_type.cpp":134
> 	"133"	""	"         //c = loader->LoadVerifyAndPrepareClass(env, name);"
> 	"134"	"*"	"         clss = loader->LoadClass(env, name);"
> 	"135"	"*"	"         return clss;"
> See also Source View screenshots. 

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


[jira] Updated: (HARMONY-4260) [drlvm][classloader][tc] Race conditions at "java_type.cpp":(140-134) at load_type_desc() on reliability test ClassReflectionTest

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

Ilya Leviev updated HARMONY-4260:
---------------------------------

    Summary: [drlvm][classloader][tc] Race conditions at "java_type.cpp":(140-134) at load_type_desc() on reliability test ClassReflectionTest  (was: [drlvm][classloader] Race conditions at "java_type.cpp":(140-134) at load_type_desc() on reliability test ClassReflectionTest)

> [drlvm][classloader][tc] Race conditions at "java_type.cpp":(140-134) at load_type_desc() on reliability test ClassReflectionTest
> ---------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4260
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4260
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Ilya Leviev
>            Priority: Minor
>         Attachments: SourceViewscreenshot-1.jpg, SourceViewScreenshot-2.jpg
>
>
> Race conditions at "java_type.cpp":(140-134) at load_type_desc() function while reliability test ClassReflectionTest execution
> TC report on thread unsafe access that result in race condition that occur during concurrent execution of load_type_desc() function 
> if it low priority issue I will mark it as expected race condition. 
> 1) Write -> Write data-race	Memory write at "java_type.cpp":140 conflicts with a prior memory write at "java_type.cpp":140
> 2) Write -> Write data-race	Memory write at "java_type.cpp":134 conflicts with a prior memory write at "java_type.cpp":134
> 1) Write -> Write data-race	Memory write at "java_type.cpp":140 conflicts with a prior memory write at "java_type.cpp":140
> Stack Trace: 
> Context
> 	Function class_is_subtype "jit_runtime_support.cpp":3202
> 	Function get_thread_ptr_stub "thread_manager.cpp":138
> 	Function hythread_suspend_disable "hythread_ext.h":427
> 	Function m2n_pop_local_handles "m2n_ia32.cpp":257
> 	Function get_thread_ptr_stub "thread_manager.cpp":138
> 	Function hythread_suspend_enable "hythread_ext.h":376
> 	Function Java_java_lang_reflect_VMReflection_getMethodReturnType "java_lang_reflect_vmreflection.cpp":87
> 	Function descriptor_to_jclass "reflection.cpp":39
> 	Function type_info_get_class "c_interface.cpp":2070
> 	Function TypeDesc::load_type_desc "java_type.cpp":114
> Definition
> 	Function Class::parse_fields "class_file_loader.cpp":2291
> 	Function Field::parse "class_file_loader.cpp":786
> 	Function Field::parse "class_file_loader.cpp":1113
> 	Function type_desc_create_from_java_descriptor "java_type.cpp":81
> 	Function TypeDesc::type_desc_create_vector "java_type.cpp":163
> 	Function operator new "newop.cpp":12
> 	Function malloc "dbgheap.c":139
> 	Function nh_malloc_dbg "dbgheap.c":260
> 	Function heap_alloc_dbg "dbgheap.c":397
> 	Function heap_alloc_base "malloc.c":211
> 1st Access
> 	Function class_is_subtype "jit_runtime_support.cpp":3202
> 	Function get_thread_ptr_stub "thread_manager.cpp":138
> 	Function hythread_suspend_disable "hythread_ext.h":427
> 	Function m2n_pop_local_handles "m2n_ia32.cpp":257
> 	Function get_thread_ptr_stub "thread_manager.cpp":138
> 	Function hythread_suspend_enable "hythread_ext.h":376
> 	Function Java_java_lang_reflect_VMReflection_getMethodReturnType "java_lang_reflect_vmreflection.cpp":87
> 	Function descriptor_to_jclass "reflection.cpp":39
> 	Function type_info_get_class "c_interface.cpp":2070
> 	Function TypeDesc::load_type_desc "java_type.cpp":140
> 	"139"	""	"         if (!element_clss) return NULL;"
> 	"140"	"*"	"         clss = resolve_class_array_of_class1(env, element_clss);"
> 	"141"	""	"         return clss;"
> 2nd Access
> 	Function class_is_subtype "jit_runtime_support.cpp":3202
> 	Function get_thread_ptr_stub "thread_manager.cpp":138
> 	Function hythread_suspend_disable "hythread_ext.h":427
> 	Function m2n_pop_local_handles "m2n_ia32.cpp":257
> 	Function get_thread_ptr_stub "thread_manager.cpp":138
> 	Function hythread_suspend_enable "hythread_ext.h":376
> 	Function Java_java_lang_reflect_VMReflection_getMethodReturnType "java_lang_reflect_vmreflection.cpp":87
> 	Function descriptor_to_jclass "reflection.cpp":39
> 	Function type_info_get_class "c_interface.cpp":2070
> 	Function TypeDesc::load_type_desc "java_type.cpp":140
> 	"139"	""	"         if (!element_clss) return NULL;"
> 	"140"	"*"	"         clss = resolve_class_array_of_class1(env, element_clss);"
> 	"141"	""	"         return clss;"
> See also Source View screenshots. 
> 2) Write -> Write data-race	Memory write at "java_type.cpp":134 conflicts with a prior memory write at "java_type.cpp":134
> Context
> 	Function get_thread_ptr_stub "thread_manager.cpp":138
> 	Function hythread_suspend_disable "hythread_ext.h":427
> 	Function m2n_pop_local_handles "m2n_ia32.cpp":257
> 	Function get_thread_ptr_stub "thread_manager.cpp":138
> 	Function hythread_suspend_enable "hythread_ext.h":376
> 	Function Java_java_lang_reflect_VMReflection_getMethodReturnType "java_lang_reflect_vmreflection.cpp":87
> 	Function descriptor_to_jclass "reflection.cpp":39
> 	Function type_info_get_class "c_interface.cpp":2070
> 	Function TypeDesc::load_type_desc "java_type.cpp":138
> 	Function TypeDesc::load_type_desc "java_type.cpp":114
> Definition
> 	Function Class::parse_fields "class_file_loader.cpp":2291
> 	Function Field::parse "class_file_loader.cpp":786
> 	Function Field::parse "class_file_loader.cpp":1113
> 	Function type_desc_create_from_java_descriptor "java_type.cpp":77
> 	Function type_desc_create_from_java_descriptor "java_type.cpp":68
> 	Function operator new "newop.cpp":12
> 	Function malloc "dbgheap.c":139
> 	Function nh_malloc_dbg "dbgheap.c":260
> 	Function heap_alloc_dbg "dbgheap.c":397
> 	Function heap_alloc_base "malloc.c":211
> 1st Access
> 	Function get_thread_ptr_stub "thread_manager.cpp":138
> 	Function hythread_suspend_disable "hythread_ext.h":427
> 	Function m2n_pop_local_handles "m2n_ia32.cpp":257
> 	Function get_thread_ptr_stub "thread_manager.cpp":138
> 	Function hythread_suspend_enable "hythread_ext.h":376
> 	Function Java_java_lang_reflect_VMReflection_getMethodReturnType "java_lang_reflect_vmreflection.cpp":87
> 	Function descriptor_to_jclass "reflection.cpp":39
> 	Function type_info_get_class "c_interface.cpp":2070
> 	Function TypeDesc::load_type_desc "java_type.cpp":138
> 	Function TypeDesc::load_type_desc "java_type.cpp":134
> 	"133"	""	"         //c = loader->LoadVerifyAndPrepareClass(env, name);"
> 	"134"	"*"	"         clss = loader->LoadClass(env, name);"
> 	"135"	"*"	"         return clss;"
> 2nd Access
> 	Function get_thread_ptr_stub "thread_manager.cpp":138
> 	Function hythread_suspend_disable "hythread_ext.h":427
> 	Function m2n_pop_local_handles "m2n_ia32.cpp":257
> 	Function get_thread_ptr_stub "thread_manager.cpp":138
> 	Function hythread_suspend_enable "hythread_ext.h":376
> 	Function Java_java_lang_reflect_VMReflection_getMethodReturnType "java_lang_reflect_vmreflection.cpp":87
> 	Function descriptor_to_jclass "reflection.cpp":39
> 	Function type_info_get_class "c_interface.cpp":2070
> 	Function TypeDesc::load_type_desc "java_type.cpp":138
> 	Function TypeDesc::load_type_desc "java_type.cpp":134
> 	"133"	""	"         //c = loader->LoadVerifyAndPrepareClass(env, name);"
> 	"134"	"*"	"         clss = loader->LoadClass(env, name);"
> 	"135"	"*"	"         return clss;"
> See also Source View screenshots. 

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