RFR: 8334763: --enable-asan: assert(_thread->is_in_live_stack((address)this)) failed: not on stack? [v4]

Thomas Stuefe stuefe at openjdk.org
Mon Jun 24 14:27:13 UTC 2024


On Mon, 24 Jun 2024 14:11:35 GMT, Jan Kratochvil <jkratochvil at openjdk.org> wrote:

>> fastdebug:
>> 
>> 
>> # A fatal error has been detected by the Java Runtime Environment:
>> #
>> #  Internal Error (/home/azul/azul/openjdk-git/src/hotspot/share/runtime/handles.inline.hpp:77), pid=878152, tid=878158
>> #  assert(_thread->is_in_live_stack((address)this)) failed: not on stack?
>> #
>> # JRE version:  (24.0) (fastdebug build )
>> # Java VM: OpenJDK 64-Bit Server VM (fastdebug 24-internal-adhoc.azul.openjdk-git, mixed mode, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
>> # Problematic frame:
>> # V  [libjvm.so+0x1d20658]  constantPoolHandle::constantPoolHandle(Thread*, ConstantPool*)+0x268
>
> Jan Kratochvil has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Fix a typo
>    - bugreported by Thomas Stuefe

LGTM. I made a proposal for a bit clearer comment. Up to you if you take it. Thanks for fixing this.

make/autoconf/jdk-options.m4 line 442:

> 440:           ASAN_LDFLAGS="-fsanitize=address"
> 441:           # detect_stack_use_after_return is using a fake stack and thus JDK would crash:
> 442:           # assert(_thread->is_in_live_stack((address)this)) failed: not on stack?

Proposal:

|detect_stack_use_after_return causes ASAN to offload stack-local variables to c-heap and therefore breaks assumptions in hotspot that rely on data (e.g. Marks) living in thread stacks."

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

Marked as reviewed by stuefe (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/19843#pullrequestreview-2135966101
PR Review Comment: https://git.openjdk.org/jdk/pull/19843#discussion_r1651129632


More information about the build-dev mailing list