harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mikhail Fursov (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HARMONY-3727) [drlvm][jit] Race condition at function Jitrino::Type::Type(enum Jitrino::Type::Tag) "type.h":144
Date Mon, 23 Apr 2007 15:12:15 GMT

    [ https://issues.apache.org/jira/browse/HARMONY-3727?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12490960
] 

Mikhail Fursov commented on HARMONY-3727:
-----------------------------------------

This is the real bug that we must fix.
My proposal is to move typeId generator to compilation local typemanager.

> [drlvm][jit] Race condition at function Jitrino::Type::Type(enum Jitrino::Type::Tag)
"type.h":144
> -------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3727
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3727
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Ilya Leviev
>
> There are thread unsafe operations at  function Jitrino::Type::Type(enum Jitrino::Type::Tag)
"type.h":144
> Write -> Write data-race.   Memory write at "type.h":144 conflicts with a prior memory
write at "type.h":144
> Here is stack traces of the issue.  
> Context
>           Function compile_do_compilation "compile.cpp":770
>           Function CompileMethod "em_intf.cpp":49
>           Function enum JIT_Result DrlEMImpl::compileMethod(struct Method *) "drlemimpl.cpp":540
>           Function vm_compile_method "c_interface.cpp":2492
>           Function enum JIT_Result compile_do_compilation_jit(struct Method *,class JIT
*) "compile.cpp":657
>           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":244
>           Function Jitrino::TypeManager::TypeManager(class Jitrino::MemoryManager &)
"type.cpp":341
>           Function Jitrino::ValueType::ValueType(enum Jitrino::Type::Tag) "type.h":465
>           Function Jitrino::Type::Type(enum Jitrino::Type::Tag) "type.h":144
>  
> 1st Access
>           Function CompileMethod "em_intf.cpp":49
>           Function enum JIT_Result DrlEMImpl::compileMethod(struct Method *) "drlemimpl.cpp":540
>           Function vm_compile_method "c_interface.cpp":2492
>           Function enum JIT_Result compile_do_compilation_jit(struct Method *,class JIT
*) "compile.cpp":657
>           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":244
>           Function void Jitrino::TypeManager::init(void) "type.cpp":379
>           Function Jitrino::ObjectType::ObjectType(enum Jitrino::Type::Tag,void *,class
Jitrino::TypeManager &) "type.h":501
>           Function Jitrino::NamedType::NamedType(enum Jitrino::Type::Tag,void *,class
Jitrino::TypeManager &) "type.h":440
>           Function Jitrino::Type::Type(enum Jitrino::Type::Tag) "type.h":144
>  
> 2nd Access
>           Function compile_do_compilation "compile.cpp":770
>           Function CompileMethod "em_intf.cpp":49
>           Function enum JIT_Result DrlEMImpl::compileMethod(struct Method *) "drlemimpl.cpp":540
>           Function vm_compile_method "c_interface.cpp":2492
>           Function enum JIT_Result compile_do_compilation_jit(struct Method *,class JIT
*) "compile.cpp":657
>           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":244
>           Function Jitrino::TypeManager::TypeManager(class Jitrino::MemoryManager &)
"type.cpp":341
>           Function Jitrino::ValueType::ValueType(enum Jitrino::Type::Tag) "type.h":465
>           Function Jitrino::Type::Type(enum Jitrino::Type::Tag) "type.h":144
>  
>  
>  
> ""       "139"  ""       "         Singleton,"
> ""       "140"  ""       " "
> ""       "141"  ""       "         NumTypeTags,"
> ""       "142"  ""       "         InavlidTag = NumTypeTags"
> ""       "143"  ""       "     };"
> "0x519A0"     "144"  "*"      "     Type(Tag t) : tag(t), id(++nextTypeId) {}"   <---
> ""       "145"  ""       "     virtual ~Type() {}"
> ""       "146"  ""       " "
>  
>  

-- 
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