Invalid code generated by C2 compiler in OpenJDK 21
Volker Simonis
volker.simonis at gmail.com
Fri Dec 15 11:03:19 UTC 2023
Can you please share hs_error file from the assertion crash with the
fastdebug build? That may give us some hints.
Antoine DESSAIGNE <antoine.dessaigne at gmail.com> schrieb am Fr., 15. Dez.
2023, 11:21:
> Hello everyone,
>
> I've found an issue while migrating to OpenJDK 21. A valued local
> variable (effectively final) has its value removed and it throws a
> NullPointerException. Unfortunately, I cannot provide the source code
> and the data to reproduce the issue, and I couldn't create a smaller
> code snippet to show the issue. That said, I'll happily show the code
> and perform many tests during calls.
>
> Here's what I did so far to diagnose the issue.
>
> I bisected the repository to find where the regression comes from. I
> found this commit 3696711efa5 [1] but it's a merge so I bisected the
> branch and found 10737e168c9 [2]. Looking at this commit, I have no
> idea how it could introduce this kind of regression.
>
> Then, thanks to the guidance from Aleksey Shipilëv, I tested many things
> * Issue does *not* happen with the following flags: -Xint,
> -XX:-TieredCompilation, -XX:TieredStopAtLevel=1,
> -XX:TieredStopAtLevel=2, -XX:TieredStopAtLevel=3
> * Issue also happens with fastdebug builds of OpenJDK, without
> crashing due to assertions
> * Issue still happens in the latest version of the code (commit
> b31454e3623)
> * Issue happens no matter which GC is used, I tried SerialGC,
> ParallelGC, G1GC, and ShenandoahGC
>
> The tests were performed in Docker containers running on 4 different hosts.
>
> Therefore it looks like C2 is generating an invalid assembly code.
> Unfortunately, I'm not great with assembly and the generated assembly
> is quite big (main code is around 20k).
>
> Do you have an idea of why this is happening? Do you know what test I
> can run? If one of you is available, we can schedule calls for me to
> show you the code and my tests. Thank you very much for your
> assistance.
>
> Have a nice day,
>
> Antoine DESSAIGNE
>
> [1]
> https://github.com/openjdk/jdk/commit/3696711efa566fb776d6923da86e17b0e1e22964
> [2]
> https://github.com/openjdk/jdk/commit/10737e168c967a08e257927251861bf2c14795ab
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/hotspot-compiler-dev/attachments/20231215/9c35c0f0/attachment-0001.htm>
More information about the hotspot-compiler-dev
mailing list