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-3979) [drlvm][class_support] Race conditions at "string_pool.cpp":319
Date Fri, 25 May 2007 10:41:16 GMT
[drlvm][class_support] Race conditions at "string_pool.cpp":319 
----------------------------------------------------------------

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


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


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


Write -> Write data-race
Memory write at "string_pool.cpp":319 conflicts with a prior memory write at "string_pool.cpp":319


Stack Trace: 

Context
	Function m2n_pop_local_handles "m2n_ia32.cpp":257
	Function vm_get_gc_thread_local "c_interface.cpp":2414
	Function gc_alloc_fast "mutator_alloc.cpp":120
	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_VMClassRegistry_getName "java_lang_vmclassregistry.cpp":290
	Function struct _jobject * String_to_interned_jstring(struct String *) "vm_strings.cpp":585
	Function struct ManagedObject * vm_instantiate_cp_string_resolved(struct String *) "vm_strings.cpp":563
	Function struct ManagedObject * String_Pool::intern(struct String *) "string_pool.cpp":366
	Function void String_Pool::register_interned_string(struct String *) "string_pool.cpp":299


1st Access
	Function m2n_free_local_handles "m2n_ia32.cpp":268
	Function is_class_initialized "jit_runtime_support.cpp":702
	Function class VM_thread * get_thread_ptr_stub(void) "thread_manager.cpp":138
	Function class VM_thread * get_thread_ptr_stub(void) "thread_manager.cpp":138
	Function class VM_thread * get_thread_ptr_stub(void) "thread_manager.cpp":138
	Function rth_ldc_ref_helper "jit_runtime_support.cpp":163
	Function struct ManagedObject * vm_instantiate_cp_string_slow(struct Class *,unsigned int)
"vm_strings.cpp":615
	Function struct ManagedObject * vm_instantiate_cp_string_resolved(struct String *) "vm_strings.cpp":563
	Function struct ManagedObject * String_Pool::intern(struct String *) "string_pool.cpp":366
	Function void String_Pool::register_interned_string(struct String *) "string_pool.cpp":319

	"316"	""	"         MemoryWriteBarrier();"
	"317"	""	"         local_current_interned->free_slot++;"
	"318"	""	"     } else {"
	"319"	"*"	"         current_interned->free_slot++;"
	"320"	""	"     }"
	"321"	""	" }"



2nd Access
	Function m2n_pop_local_handles "m2n_ia32.cpp":257
	Function vm_get_gc_thread_local "c_interface.cpp":2414
	Function gc_alloc_fast "mutator_alloc.cpp":120
	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_VMClassRegistry_getName "java_lang_vmclassregistry.cpp":290
	Function struct _jobject * String_to_interned_jstring(struct String *) "vm_strings.cpp":585
	Function struct ManagedObject * vm_instantiate_cp_string_resolved(struct String *) "vm_strings.cpp":563
	Function struct ManagedObject * String_Pool::intern(struct String *) "string_pool.cpp":366
	Function void String_Pool::register_interned_string(struct String *) "string_pool.cpp":319


	"316"	""	"         MemoryWriteBarrier();"
	"317"	""	"         local_current_interned->free_slot++;"
	"318"	""	"     } else {"
	"319"	"*"	"         current_interned->free_slot++;"
	"320"	""	"     }"
	"321"	""	" }"




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.


Mime
View raw message