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/04/23 15:39:15 UTC
[jira] Created: (HARMONY-3727) [drlvm][jit] Race condition at
function Jitrino::Type::Type(enum Jitrino::Type::Tag) "type.h":144
[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.
[jira] Assigned: (HARMONY-3727) [drlvm][jit] Race condition at
function Jitrino::Type::Type(enum Jitrino::Type::Tag) "type.h":144
Posted by "Alexey Varlamov (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-3727?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alexey Varlamov reassigned HARMONY-3727:
----------------------------------------
Assignee: Alexey Varlamov
> [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
> Assignee: Alexey Varlamov
> Attachments: type.diff
>
>
> 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.
[jira] Commented: (HARMONY-3727) [drlvm][jit] Race condition at
function Jitrino::Type::Type(enum Jitrino::Type::Tag) "type.h":144
Posted by "Mikhail Fursov (JIRA)" <ji...@apache.org>.
[ 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.
[jira] Closed: (HARMONY-3727) [drlvm][jit] Race condition at
function Jitrino::Type::Type(enum Jitrino::Type::Tag) "type.h":144
Posted by "Alexey Varlamov (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-3727?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alexey Varlamov closed HARMONY-3727.
------------------------------------
Resolution: Fixed
Fixed at revision: 543439
> [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
> Assignee: Alexey Varlamov
> Attachments: type.diff
>
>
> 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.
[jira] Updated: (HARMONY-3727) [drlvm][jit] Race condition at
function Jitrino::Type::Type(enum Jitrino::Type::Tag) "type.h":144
Posted by "Mikhail Fursov (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-3727?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mikhail Fursov updated HARMONY-3727:
------------------------------------
Attachment: type.diff
After a small investigation I've found that this is not a real bug because typeId is never used out of compilation session.
the fix I attach adds unsafe regions markers to the problem code.
> [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
> Attachments: type.diff
>
>
> 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.