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/28 19:43:15 UTC
[jira] Updated: (HARMONY-3979) [drlvm][classloader] Known/proven
race conditions markup at "string_pool.cpp":319
[ https://issues.apache.org/jira/browse/HARMONY-3979?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ilya Leviev updated HARMONY-3979:
---------------------------------
Patch Info: [Patch Available]
Summary: [drlvm][classloader] Known/proven race conditions markup at "string_pool.cpp":319 (was: [drlvm][class_support] Race conditions at "string_pool.cpp":319 )
> [drlvm][classloader] Known/proven race conditions markup 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: HARMONY-3979_add_markup.patch, 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.