RFR: 8332462: ubsan: c1_ValueStack.hpp:229:49: runtime error: load of value 171, which is not a valid value for type 'bool'

Christian Hagedorn chagedorn at openjdk.org
Fri May 17 14:07:07 UTC 2024


On Fri, 17 May 2024 13:48:57 GMT, Matthias Baesken <mbaesken at openjdk.org> wrote:

> This coding, with ubsan enabled
>   bool force_reexecute() const { return _force_reexecute; }
> 
> gives us on Linux x86_64 fastdebug the following warning :
> 
> /jdk/src/hotspot/share/c1/c1_ValueStack.hpp:229:49: runtime error: load of value 171, which is not a valid value for type 'bool'
>     #0 0x14b3999f2921 in ValueStack::force_reexecute() const /jdk/src/hotspot/share/c1/c1_ValueStack.hpp:229
>     #1 0x14b3999f2921 in LIRGenerator::do_ArrayCopy(Intrinsic*) /jdk/src/hotspot/cpu/x86/c1_LIRGenerator_x86.cpp:1008
>     #2 0x14b39aa1c077 in LIRGenerator::do_root(Instruction*) /jdk/src/hotspot/share/c1/c1_LIRGenerator.cpp:379
>     #3 0x14b39aa2df94 in non-virtual thunk to LIRGenerator::block_do(BlockBegin*) (/net/usr.work/d040975/open_jdk/jdk_6/build_clx209_fastdebug/jdk/lib/server/libjvm.so+0x5ad1f94)
>     #4 0x14b39a971ff6 in BlockList::iterate_forward(BlockClosure*) /jdk/src/hotspot/share/c1/c1_Instruction.cpp:891
>     #5 0x14b39a878114 in Compilation::emit_lir() /jdk/src/hotspot/share/c1/c1_Compilation.cpp:264
>     #6 0x14b39a882076 in Compilation::compile_java_method() /jdk/src/hotspot/share/c1/c1_Compilation.cpp:407
>     #7 0x14b39a884c48 in Compilation::compile_method() /jdk/src/hotspot/share/c1/c1_Compilation.cpp:479
>     #8 0x14b39a88681a in Compilation::Compilation(AbstractCompiler*, ciEnv*, ciMethod*, int, BufferBlob*, bool, DirectiveSet*) /jdk/src/hotspot/share/c1/c1_Compilation.cpp:609
>     #9 0x14b39a88bd63 in Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*) /jdk/src/hotspot/share/c1/c1_Compiler.cpp:260
>     #10 0x14b39b153241 in CompileBroker::invoke_compiler_on_method(CompileTask*) /jdk/src/hotspot/share/compiler/compileBroker.cpp:2303
>     #11 0x14b39b154d3e in CompileBroker::compiler_thread_loop() /jdk/src/hotspot/share/compiler/compileBroker.cpp:1961
>     #12 0x14b39bdb17bc in JavaThread::thread_main_inner() /jdk/src/hotspot/share/runtime/javaThread.cpp:759
>     #13 0x14b39d8a828f in Thread::call_run() /jdk/src/hotspot/share/runtime/thread.cpp:225
>    ... (rest of output omitted)
> 
> Seems we miss initializations of the variable _force_reexecute , and this can lead to arbitrary values at the address in memory where  _force_reexecute is stored.

Looks good!

-------------

Marked as reviewed by chagedorn (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/19284#pullrequestreview-2063531599


More information about the hotspot-compiler-dev mailing list