-
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
J9 (1.8.0_275-b01) crashed while J9 (9.0.4) and J9 (11.0.9+11) did not. #11683
Comments
Run the testcase against
There was no crash and no core files generated. @fuzzy000 anything else required to reproduce the crash? |
@JasonFengJ9 On the original server (which can reproduce the crash):
On the server that can not reproduce:
Could you please try it on the same Ubuntu version? If you need any additional information, please feel free to let me know. Also, here inside the zip is the core.xxx.dmp, javacore.xxx.txt, jitdump.xxx.dmp and Snap.xxx.trc. I hope it useful for you. |
It was a crash at |
Pls try the 0.24 release milestone 2 builds in case this problem has already been resolved. |
@pshipton We also got a crash for the j9-8u282-b07 (0.24 release), here are the dump files: j9-8u282-dmp.zip We think this crash is possibly related to the server load. Our server that got those crashes was running lots of CPU tasks at the same time. |
@gacholio do you have cycles to look at the latest core? |
Reproduced locally on an internal build:
Looks like the receiver to |
|
|
The only odd thing in the bytecodes is that the logger is called in between the creation of the NPE and the construction of it. There's also some junk code between the logger call and the constructor call. |
The failure I'm looking at occurs with -Xint. |
Running with |
Looking at the bytecodes above, this should fail bytecode verification. Bytecode 24 may branch to bytecode 64, bypassing any write to local 5 which is read at bytecode 65. The end result would be random data being passed up the NPE constructor chain eventually resulting in the garbage being read in the finalizer test in the object constructor. |
@ChengJin01 Any thoughts as to why this doesn't fail verification? It does not appear to be exempt:
|
@gacholio , this is the same issue as #11684 and #11685 which was triggered by the fix at #9419 (explained at #11684 (comment)). The bytecode above was intentionally modified to trigger verification errors. I already created a new fix at ChengJin01@dbed590 to capture the verification error here
against the same RI's behaviour at
Will launch personal builds and verify the internal tests to ensure there is no break in the existing test suites. |
The change is to reinforce the initial intention that only a target slot with BCV_SPECIAL_INIT is exempted from being set with top given setInitializedThisStatus() needs to check BCV_SPECIAL_INIT to flag the uninitialized_this object. Fixes: eclipse-openj9#11683,eclipse-openj9#11684,eclipse-openj9#11685 Signed-off-by: Cheng Jin <[email protected]>
Java -version output
We used the following versions of J9:
Summary of problem
We made some changes to a class file in the JUnit project, and let several JVMs execute the corresponding JUnit test. We found that there are 6 classes caused the J9 (1.8.0_275-b01) to crash. For each crash, four files appears:
core.xxx.dmp
,javacore.xxx.txt
,jitdump.xxx.dmp
andSnap.xxx.trc
.Diagnostic files
j9-8-crash.zip
Steps to reproduce the behavior:
j9-8-crash.zip
j9-8-crash
, run commandcp Checks1.class sootOutput/junit-junit/org/junit/internal/Checks.class
. You can also cp Checks2, Checks3, etc.java -cp sootOutput/junit-junit/:hamcrest-all-1.3.jar:junit-4.12.jar org.junit.runner.JUnitCore org.junit.internal.ChecksTest
Execution environment
The text was updated successfully, but these errors were encountered: