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-4048) [drlvm][jit][tc] Known/proven race conditions markup at \vm\jitrino\src\shared\HashTable.h:(113-117-121) at lookupEntry function
Date Tue, 05 Jun 2007 13:23:26 GMT
[drlvm][jit][tc] Known/proven race conditions markup at \vm\jitrino\src\shared\HashTable.h:(113-117-121)
at lookupEntry function
--------------------------------------------------------------------------------------------------------------------------------

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


Known/proven race conditions markup at \vm\jitrino\src\shared\HashTable.h:(113-117-121) at
lookupEntry function

TC report on thread unsafe access that result in race conditions that occur during concurrent
execution of lookupEntry function. 


As issues related to debug mode I have marked it by special API for prevention of further
alarms on this races. 

data-races

1)Write -> Read data-race	
Memory read at "hashtable.h":113 conflicts with a prior memory write at "hashtable.h":113


2)Write -> Read data-race	
Memory read at "hashtable.h":117 conflicts with a prior memory write at "hashtable.h":117



3)Write -> Read data-race	
Memory read at "hashtable.h":121 conflicts with a prior memory write at "hashtable.h":121



Stack Trace: 


Context
	Function CompileMethod "em_intf.cpp":49
	Function enum JIT_Result DrlEMImpl::compileMethod(struct Method *) "drlemimpl.cpp":545
	Function vm_compile_method "c_interface.cpp":2572
	Function enum JIT_Result compile_do_compilation_jit(struct Method *,class JIT *) "compile.cpp":658
	Function enum JIT_Result Dll_JIT::compile_method_with_params(void *,struct Method *,struct
OpenMethodExecutionParams) "dll_jit_intf.h":86
	Function JIT_compile_method_with_params "drljitinterface.cpp":242
	Function void Jitrino::TypeManager::init(void) "type.cpp":390
	Function void Jitrino::KeyLinkHashTable<class Jitrino::CSEHashKey>::insert(class Jitrino::CSEHashKey
*,void *) "hashtable.h":334
	Function void Jitrino::HashTableImpl::insert(void *,void *) "hashtable.h":73
	Function struct Jitrino::HashTableLink * Jitrino::HashTableImpl::lookupEntry(void *) "hashtable.h":111


1st Access
	Function CompileMethod "em_intf.cpp":49
	Function enum JIT_Result DrlEMImpl::compileMethod(struct Method *) "drlemimpl.cpp":545
	Function vm_compile_method "c_interface.cpp":2572
	Function enum JIT_Result compile_do_compilation_jit(struct Method *,class JIT *) "compile.cpp":658
	Function enum JIT_Result Dll_JIT::compile_method_with_params(void *,struct Method *,struct
OpenMethodExecutionParams) "dll_jit_intf.h":86
	Function JIT_compile_method_with_params "drljitinterface.cpp":242
	Function void Jitrino::TypeManager::init(void) "type.cpp":392
	Function void Jitrino::KeyLinkHashTable<class Jitrino::CSEHashKey>::insert(class Jitrino::CSEHashKey
*,void *) "hashtable.h":334
	Function void Jitrino::HashTableImpl::insert(void *,void *) "hashtable.h":73
	Function struct Jitrino::HashTableLink * Jitrino::HashTableImpl::lookupEntry(void *) "hashtable.h":113/117/121


	"111"	""	"     virtual HashTableLink* lookupEntry(void* key) const {"
	"112"	""	" #ifdef _DEBUG"
	"113"	"*"	"         ((HashTableImpl *)this)->numLookup++;"
	"114"	""	" #endif"
	"115"	""	"         for (HashTableLink* e = table[getTableIndex(key)]; e != NULL; e = e->next)
{"
	"116"	""	" #ifdef _DEBUG"
	"117"	"*"	"             ((HashTableImpl *)this)->numLookupEntry++;"
	"118"	""	" #endif"
	"119"	""	"             if (equals(e->keyPtr,key)) {"
	"120"	""	" #ifdef _DEBUG"
	"121"	"*"	"                 ((HashTableImpl *)this)->numFound++;"
	"122"	""	" #endif"
	"123"	""	"                 return e;"
	"124"	""	"             }"



2nd Access
	Function CompileMethod "em_intf.cpp":49
	Function enum JIT_Result DrlEMImpl::compileMethod(struct Method *) "drlemimpl.cpp":545
	Function vm_compile_method "c_interface.cpp":2572
	Function enum JIT_Result compile_do_compilation_jit(struct Method *,class JIT *) "compile.cpp":658
	Function enum JIT_Result Dll_JIT::compile_method_with_params(void *,struct Method *,struct
OpenMethodExecutionParams) "dll_jit_intf.h":86
	Function JIT_compile_method_with_params "drljitinterface.cpp":242
	Function void Jitrino::TypeManager::init(void) "type.cpp":390
	Function void Jitrino::KeyLinkHashTable<class Jitrino::CSEHashKey>::insert(class Jitrino::CSEHashKey
*,void *) "hashtable.h":334
	Function void Jitrino::HashTableImpl::insert(void *,void *) "hashtable.h":73
	Function struct Jitrino::HashTableLink * Jitrino::HashTableImpl::lookupEntry(void *) "hashtable.h":113/117/121



	"111"	""	"     virtual HashTableLink* lookupEntry(void* key) const {"
	"112"	""	" #ifdef _DEBUG"
	"113"	"*"	"         ((HashTableImpl *)this)->numLookup++;"
	"114"	""	" #endif"
	"115"	""	"         for (HashTableLink* e = table[getTableIndex(key)]; e != NULL; e = e->next)
{"
	"116"	""	" #ifdef _DEBUG"
	"117"	"*"	"             ((HashTableImpl *)this)->numLookupEntry++;"
	"118"	""	" #endif"
	"119"	""	"             if (equals(e->keyPtr,key)) {"
	"120"	""	" #ifdef _DEBUG"
	"121"	"*"	"                 ((HashTableImpl *)this)->numFound++;"
	"122"	""	" #endif"
	"123"	""	"                 return e;"
	"124"	""	"             }"






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.


Mime
View raw message