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] Updated: (HARMONY-4249) [drlvm][jit][exception] Race conditions at "lazyexceptionopt.cpp":(87-224) at doLazyExceptionOpt() function
Date Wed, 20 Jun 2007 14:09:26 GMT

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

Mikhail Fursov updated HARMONY-4249:
------------------------------------

                Priority: Minor  (was: Major)
    Estimated Complexity: Novice

Changing priority to minor. The 'level' variable is used only for logging, however marking
it as UNSAFE is not correct.
The correct solution would be to check if this info is really needed and remove it or make
it compilation local.

> [drlvm][jit][exception] Race conditions at "lazyexceptionopt.cpp":(87-224) at doLazyExceptionOpt()
function
> -----------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4249
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4249
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Ilya Leviev
>            Assignee: Mikhail Fursov
>            Priority: Minor
>         Attachments: SourceViewScreenshot-1.jpg, SourceViewScreenshot-2.jpg, SourceViewScreenshot-3.jpg
>
>
> Race conditions at "lazyexceptionopt.cpp":(87-224) at doLazyExceptionOpt() function
> TC report on thread unsafe access that result in race condition that occur during concurrent
execution of doLazyExceptionOpt() function
> if it low priority issue  I will mark it as expected race condition.
> 1) Write -> Write data-race     Memory write at "lazyexceptionopt.cpp":87 conflicts
with a prior memory write at "lazyexceptionopt.cpp":87
> 2) Write -> Write data-race	Memory write at "lazyexceptionopt.cpp":224 conflicts with
a prior memory write at "lazyexceptionopt.cpp":224
> 3) Write -> Write data-race	Memory write at "lazyexceptionopt.cpp":224 conflicts with
a prior memory write at "lazyexceptionopt.cpp":87
> 1) Write -> Write data-race        Memory write at "lazyexceptionopt.cpp":87 conflicts
with a prior memory write at "lazyexceptionopt.cpp":87
> Stack Trace: 
> Context
> 	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":284
> 	Function bool Jitrino::Jitrino::CompileMethod(class Jitrino::CompilationContext *) "jitrino.cpp":269
> 	Function bool Jitrino::compileMethod(class Jitrino::CompilationContext *) "jitrino.cpp":249
> 	Function void Jitrino::runPipeline(class Jitrino::CompilationContext *) "jitrino.cpp":229
> 	Function void Jitrino::OptPass::run(void) "optpass.cpp":61
> 	Function void Jitrino::LazyExceptionOptPass::_run(class Jitrino::IRManager &) "lazyexceptionopt.cpp":40
> 	Function void Jitrino::LazyExceptionOpt::doLazyExceptionOpt(void) "lazyexceptionopt.cpp":64
> 1st Access
> 	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":284
> 	Function bool Jitrino::Jitrino::CompileMethod(class Jitrino::CompilationContext *) "jitrino.cpp":269
> 	Function bool Jitrino::compileMethod(class Jitrino::CompilationContext *) "jitrino.cpp":249
> 	Function void Jitrino::runPipeline(class Jitrino::CompilationContext *) "jitrino.cpp":229
> 	Function void Jitrino::OptPass::run(void) "optpass.cpp":61
> 	Function void Jitrino::LazyExceptionOptPass::_run(class Jitrino::IRManager &) "lazyexceptionopt.cpp":40
> 	Function void Jitrino::LazyExceptionOpt::doLazyExceptionOpt(void) "lazyexceptionopt.cpp":87
> 	""	" "
> 	"87"	""	"     level++;"
> 	"88"	""	"     uint32 opndId = 0;"
> 	"89"	""	"     isArgCheckNull = false;"
> 2nd Access
> 	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":284
> 	Function bool Jitrino::Jitrino::CompileMethod(class Jitrino::CompilationContext *) "jitrino.cpp":269
> 	Function bool Jitrino::compileMethod(class Jitrino::CompilationContext *) "jitrino.cpp":249
> 	Function void Jitrino::runPipeline(class Jitrino::CompilationContext *) "jitrino.cpp":229
> 	Function void Jitrino::OptPass::run(void) "optpass.cpp":61
> 	Function void Jitrino::LazyExceptionOptPass::_run(class Jitrino::IRManager &) "lazyexceptionopt.cpp":40
> 	Function void Jitrino::LazyExceptionOpt::doLazyExceptionOpt(void) "lazyexceptionopt.cpp":87
> 	""	" "
> 	"87"	""	"     level++;"
> 	"88"	""	"     uint32 opndId = 0;"
> 	"89"	""	"     isArgCheckNull = false;"
> See also Source View screenshots. 
> 2) Write -> Write data-race	Memory write at "lazyexceptionopt.cpp":224 conflicts with
a prior memory write at "lazyexceptionopt.cpp":224
> Stack Trace: 
> Context
> 	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":284
> 	Function bool Jitrino::Jitrino::CompileMethod(class Jitrino::CompilationContext *) "jitrino.cpp":269
> 	Function bool Jitrino::compileMethod(class Jitrino::CompilationContext *) "jitrino.cpp":249
> 	Function void Jitrino::runPipeline(class Jitrino::CompilationContext *) "jitrino.cpp":229
> 	Function void Jitrino::OptPass::run(void) "optpass.cpp":61
> 	Function void Jitrino::LazyExceptionOptPass::_run(class Jitrino::IRManager &) "lazyexceptionopt.cpp":40
> 	Function void Jitrino::LazyExceptionOpt::doLazyExceptionOpt(void) "lazyexceptionopt.cpp":64
> 1st Access
> 	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":284
> 	Function bool Jitrino::Jitrino::CompileMethod(class Jitrino::CompilationContext *) "jitrino.cpp":269
> 	Function bool Jitrino::compileMethod(class Jitrino::CompilationContext *) "jitrino.cpp":249
> 	Function void Jitrino::runPipeline(class Jitrino::CompilationContext *) "jitrino.cpp":229
> 	Function void Jitrino::OptPass::run(void) "optpass.cpp":61
> 	Function void Jitrino::LazyExceptionOptPass::_run(class Jitrino::IRManager &) "lazyexceptionopt.cpp":40
> 	Function void Jitrino::LazyExceptionOpt::doLazyExceptionOpt(void) "lazyexceptionopt.cpp":224
> 	"222"	""	"     }"
> 	"223"	""	" "
> 	"224"	""	" level--;"
> 2nd Access
> 	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":284
> 	Function bool Jitrino::Jitrino::CompileMethod(class Jitrino::CompilationContext *) "jitrino.cpp":269
> 	Function bool Jitrino::compileMethod(class Jitrino::CompilationContext *) "jitrino.cpp":249
> 	Function void Jitrino::runPipeline(class Jitrino::CompilationContext *) "jitrino.cpp":229
> 	Function void Jitrino::OptPass::run(void) "optpass.cpp":61
> 	Function void Jitrino::LazyExceptionOptPass::_run(class Jitrino::IRManager &) "lazyexceptionopt.cpp":40
> 	Function void Jitrino::LazyExceptionOpt::doLazyExceptionOpt(void) "lazyexceptionopt.cpp":224
> 	"222"	""	"     }"
> 	"223"	""	" "
> 	"224"	""	" level--;"
> See also Source View screenshots. 
> 3) Write -> Write data-race	Memory write at "lazyexceptionopt.cpp":224 conflicts with
a prior memory write at "lazyexceptionopt.cpp":87
> Stack Trace:
> Context
> 	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":284
> 	Function bool Jitrino::Jitrino::CompileMethod(class Jitrino::CompilationContext *) "jitrino.cpp":269
> 	Function bool Jitrino::compileMethod(class Jitrino::CompilationContext *) "jitrino.cpp":249
> 	Function void Jitrino::runPipeline(class Jitrino::CompilationContext *) "jitrino.cpp":229
> 	Function void Jitrino::OptPass::run(void) "optpass.cpp":61
> 	Function void Jitrino::LazyExceptionOptPass::_run(class Jitrino::IRManager &) "lazyexceptionopt.cpp":40
> 	Function void Jitrino::LazyExceptionOpt::doLazyExceptionOpt(void) "lazyexceptionopt.cpp":64
> 1st Access
> 	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":284
> 	Function bool Jitrino::Jitrino::CompileMethod(class Jitrino::CompilationContext *) "jitrino.cpp":269
> 	Function bool Jitrino::compileMethod(class Jitrino::CompilationContext *) "jitrino.cpp":249
> 	Function void Jitrino::runPipeline(class Jitrino::CompilationContext *) "jitrino.cpp":229
> 	Function void Jitrino::OptPass::run(void) "optpass.cpp":61
> 	Function void Jitrino::LazyExceptionOptPass::_run(class Jitrino::IRManager &) "lazyexceptionopt.cpp":40
> 	Function void Jitrino::LazyExceptionOpt::doLazyExceptionOpt(void) "lazyexceptionopt.cpp":87
> 	"87"	""	"     level++;"
> 	"88"	""	"     uint32 opndId = 0;"
> 	"89"	""	"     isArgCheckNull = false;"
> 2nd Access
> 	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":284
> 	Function bool Jitrino::Jitrino::CompileMethod(class Jitrino::CompilationContext *) "jitrino.cpp":269
> 	Function bool Jitrino::compileMethod(class Jitrino::CompilationContext *) "jitrino.cpp":249
> 	Function void Jitrino::runPipeline(class Jitrino::CompilationContext *) "jitrino.cpp":229
> 	Function void Jitrino::OptPass::run(void) "optpass.cpp":61
> 	Function void Jitrino::LazyExceptionOptPass::_run(class Jitrino::IRManager &) "lazyexceptionopt.cpp":40
> 	Function void Jitrino::LazyExceptionOpt::doLazyExceptionOpt(void) "lazyexceptionopt.cpp":224
> 	"222"	""	"     }"
> 	"223"	""	" "
> 	"224"	""	" level--;"
> 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.


Mime
View raw message