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/05/23 16:47:17 UTC

[jira] Assigned: (HARMONY-3945) [drlvm][util] Known/proven race conditions markup at "vm_strings.cpp":604

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

Gregory Shimansky reassigned HARMONY-3945:
------------------------------------------

    Assignee: Gregory Shimansky

> [drlvm][util] Known/proven race conditions markup at "vm_strings.cpp":604
> -------------------------------------------------------------------------
>
>                 Key: HARMONY-3945
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3945
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Ilya Leviev
>         Assigned To: Gregory Shimansky
>         Attachments: HARMONY-3945_add_markup.patch, SourceViewScreenshot-1.jpg
>
>
> TC report on thread unsafe access that result in race condition that occur during concurrent execution of vm_instantiate_cp_string_slow functions.
> As issues related to vm statistic data collection in debug mode and it not affect correctness of execution I mark it by special API for prevention of further alarms on this race.
> Write -> Write data-race
> Memory write at "vm_strings.cpp":604 conflicts with a prior memory write at "vm_strings.cpp":604
> Stack Trace: 
> Context
> 	Function int Jitrino::Jet::rt_h_dcmp_l(double,double) "arith_rt.cpp":110
> 	Function class VM_thread * get_thread_ptr_stub(void) "thread_manager.cpp":138
> 	Function m2n_free_local_handles "m2n_ia32.cpp":268
> 	Function int Jitrino::Jet::rt_h_dcmp_l(double,double) "arith_rt.cpp":110
> 	Function vm_get_gc_thread_local "c_interface.cpp":2334
> 	Function gc_alloc_fast "gc_for_vm.cpp":178
> 	Function int Jitrino::Jet::rt_h_lcmp(__int64,__int64) "arith_rt.cpp":70
> 	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":601
> 1st Access
> 	Function double Jitrino::Jet::rt_h_i64_2_dbl(__int64) "arith_rt.cpp":272
> 	Function double Jitrino::Jet::rt_h_flt_2_dbl(float) "arith_rt.cpp":294
> 	Function double Jitrino::Jet::rt_h_neg_dbl64(double) "arith_rt.cpp":49
> 	Function int Jitrino::Jet::rt_h_dcmp_l(double,double) "arith_rt.cpp":110
> 	Function int Jitrino::Jet::rt_h_lcmp(__int64,__int64) "arith_rt.cpp":70
> 	Function class VM_thread * get_thread_ptr_stub(void) "thread_manager.cpp":138
> 	Function hythread_self "hythread.h":465
> 	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":604
> 	"600"	""	" vm_instantiate_cp_string_slow(Class* c, unsigned cp_index)"
> 	"601"	""	" {"
> 	"602"	""	"     ASSERT_THROW_AREA;"
> 	"603"	""	" #ifdef VM_STATS"
> 	"604"	"*"	"     VM_Statistics::get_vm_stats().num_instantiate_cp_string_slow++;"
> 	"605"	""	" #endif"
> 	"606"	""	" "
> 	"607"	""	"     Java_java_lang_String* result;"
> 2nd Access
> 	Function int Jitrino::Jet::rt_h_dcmp_l(double,double) "arith_rt.cpp":110
> 	Function class VM_thread * get_thread_ptr_stub(void) "thread_manager.cpp":138
> 	Function m2n_free_local_handles "m2n_ia32.cpp":268
> 	Function int Jitrino::Jet::rt_h_dcmp_l(double,double) "arith_rt.cpp":110
> 	Function vm_get_gc_thread_local "c_interface.cpp":2334
> 	Function gc_alloc_fast "gc_for_vm.cpp":178
> 	Function int Jitrino::Jet::rt_h_lcmp(__int64,__int64) "arith_rt.cpp":70
> 	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":604
> 	"600"	""	" vm_instantiate_cp_string_slow(Class* c, unsigned cp_index)"
> 	"601"	""	" {"
> 	"602"	""	"     ASSERT_THROW_AREA;"
> 	"603"	""	" #ifdef VM_STATS"
> 	"604"	"*"	"     VM_Statistics::get_vm_stats().num_instantiate_cp_string_slow++;"
> 	"605"	""	" #endif"
> 	"606"	""	" "
> 	"607"	""	"     Java_java_lang_String* result;"
> 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.