-
Notifications
You must be signed in to change notification settings - Fork 729
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
JDK17 Assertion Failure at jswalk.c:538 #15569
Comments
@0xdaryl fyi |
Peter @pshipton, I can reproduce the failure, but no one has had a chance to investigate it yet. I don't think we will be able to get a fix in for the 0.35 release. |
I spent a little time trying to see I could narrow things down. The test will crash if both
|
I can reproduce the crash when
The failure is triggered by a segfault in
The String in this case is the argument to |
I was mistaken about the failure occurring when It looks like the problem occurs because two locals are mapped to the same spot, but the value for one is loaded in a block just after a value for the second is stored in the same block. It appears to be due to an interaction between compactLocals and deadTreesElimination. In the log file, tracecompactlocals.log we see before Compact Locals, this IL in block_266, in part:
Note that #1392 is loaded before the store to #986.
During Compact Locals, no interference is marked between the two variables in block_266:
Later in Dead Trees Elimination, we have this:
So the load of #1392 has moved after the store to #986. Then during instruction selection this becomes:
And finally, Post Stack Map, we have this, with both
Ultimately, block_266 falls through to block_572, which copies the value of r13 to r9, and then falls through to block_573, then block_576, which copies r9 to rax, and finally falls through to block_290, which calls
|
Hmmm. It looks like Compact Locals is not supposed to happen when profiling is enabled, according to the definition of finalGlobalOpts. Continuing to investigate. Update: It looks like that restriction only applies to JitProfile mode, not to JProfile mode. |
Java -version output
Summary of problem
The following triggers an assertion failure in jswalk.c (not swalk.c as in #15477).
Diagnostic files
By issuing
the following crash log is given:
Note,
Please also check openj9-bug-109.tar.gz for all the logs (core, snap, etc.), the reduced test (Test.java, Test.class), and unreduced (Test.java.orig, FuzzerUtils.java).
The text was updated successfully, but these errors were encountered: