<div dir="ltr">Hello everyone,<div><br></div><div>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.</div><div><br></div><div>Here's what I did so far to diagnose the issue.</div><div><br></div><div>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.</div><div><br></div><div>Then, thanks to the guidance from Aleksey Shipilëv, I tested many things</div><div>* Issue does *not* happen with the following flags: -Xint, -XX:-TieredCompilation, -XX:TieredStopAtLevel=1, -XX:TieredStopAtLevel=2, -XX:TieredStopAtLevel=3</div><div>* Issue also happens with fastdebug builds of OpenJDK, without crashing due to assertions</div><div>* Issue still happens in the latest version of the code (commit b31454e3623)</div><div>* Issue happens no matter which GC is used, I tried SerialGC, ParallelGC, G1GC, and ShenandoahGC</div><div><br></div><div>The tests were performed in Docker containers running on 4 different hosts.</div><div><br></div><div>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).</div><div><br></div><div>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.</div><div><br></div><div>Have a nice day,</div><div><br></div><div>Antoine DESSAIGNE</div><div><br></div><div>[1] <a href="https://github.com/openjdk/jdk/commit/3696711efa566fb776d6923da86e17b0e1e22964">https://github.com/openjdk/jdk/commit/3696711efa566fb776d6923da86e17b0e1e22964</a></div><div>[2] <a href="https://github.com/openjdk/jdk/commit/10737e168c967a08e257927251861bf2c14795ab">https://github.com/openjdk/jdk/commit/10737e168c967a08e257927251861bf2c14795ab</a></div><div><br></div><div><br></div></div>