-
Notifications
You must be signed in to change notification settings - Fork 720
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
AOT jsr292Test_1 crash in 2nd iteration, vmState=0x000501ff #15059
Comments
The location of the crash in the JIT:
The offset register I cannot find the symbol -> (Correction) The symbol is |
Reproduced in a Grinder job: https://openj9-jenkins.osuosl.org/job/Grinder_testList_0/110/ |
I cannot reproduce the problem locally using the binary from https://openj9-jenkins.osuosl.org/job/Build_JDK11_aarch64_mac_aot_Personal/13/ . What is special about the JDK11_aarch64_mac_aot configuration? |
I reproduced the segmentation fault by running with |
I ran the testcase in the debugger, and got the following call stack:
It is
|
#13096 is an old AArch64 issue that failed in |
I reverted the change from PR #15037 locally, and it seems to resolve the crash on AArch64 macOS. No failure in 50x runs. (vs 3 failures out of 10x runs with #15037 enabled) I have no idea how #15037 relates to the crash in looking up the FYI. @dsouzai |
Because the crashing compile seems to be dealing with method handles, it must not be an AOT compile (though it would be good to confirm this). As such, I don't know what the change in #15037 (an AOT compile specific change) has to do with a non-AOT compilation. The test is running with |
https://openj9-jenkins.osuosl.org/job/Test_openjdk11_j9_sanity.functional_aarch64_mac_aot_Personal_testList_1/14
|
The native call stack following
|
jdmpview shows the following. The object at 0x02801BA320 looks like a correct
The next question is: Why does |
I found I was able to reproduce the crash with jsr292Test_1 on AArch64 Linux by running with
|
We are short on aarch64 linux machines so we don't run the AOT tests on this platform. We test amac, plinux, xlinux, zlinux. |
openj9/runtime/compiler/env/j9method.cpp Line 1384 in 18b0f78
I guess PR #15037 may have changed the result from |
openj9/runtime/compiler/env/VMJ9.h Lines 422 to 425 in 18b0f78
Other functions that call |
I think it is an AOT compilation because the VM instance is |
Correction: Yesterday I wrote that it was not an AOT compilation in my comment #15059 (comment) . That was wrong. I made sure the crash is caused by an AOT compilation by using
|
I guess the confusing thing here is how we got to the point where we're running the InterpreterEmulator. Normally in Walker.cpp there's a bunch of aot exceptions for when the ILGenerator comes across MH related bytecodes. However, here we're not using the ILGenerator, but the Interpreter Emulator. @hzongaro do we always use the IntEmulator when estimating the code size? If so, how do we ensure that we don't start looking at MH related bytecodes during an AOT compile? From the looks of it, there don't seem to be any guards for this, but at the same time this only happens on aarch64. |
Sorry, Irwin - I haven't looked at the |
Yes
For the OpenJDK MH implementation at least, we do have checks in place to abort during AOT for both invokehandle and invokedynamic but they are guarded within |
openj9/runtime/compiler/compile/J9Compilation.cpp Lines 813 to 822 in e929d6b
openj9/runtime/compiler/control/CompilationThread.cpp Lines 8346 to 8350 in e929d6b
|
SVM is not enabled on AArch64. This is the reason why openj9/runtime/compiler/control/J9Options.cpp Lines 2345 to 2347 in e929d6b
|
I opened PR #15121 for enabling SVM on AArch64. |
We should probably also set this option in non-SVM AOT. Do you agree, @dsouzai? |
Yeah I guess we should hoist the code that sets |
This commit disables known object table in AOT compilation. Fixes: eclipse-openj9#15059 Signed-off-by: KONNO Kazuhiro <konno@jp.ibm.com>
I opened PR #15131 for disabling known object table in AOT compilation, and started test jobs. |
Test jobs on AArch64 Linux/macOS in #15131 finished successfully. |
Re-opening and assigning to the 0.33 milestone as per #15131 (comment) |
I opened #15138 for v0.33. |
Closing as I just merged #15138 |
https://openj9-jenkins.osuosl.org/job/Test_openjdk11_j9_extended.functional_aarch64_mac_aot_Personal_testList_1/12
jsr292Test_1
-Xshareclasses:name=test_aot -Xscmx400M -Xscmaxaot256m -Xjit -XX:RecreateClassfileOnload
No diagnostics captured.
@knn-k fyi
The text was updated successfully, but these errors were encountered: