Skip to content
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

Simplify INL frame build in System.arraycopy #17886

Merged
merged 1 commit into from
Aug 2, 2023

Conversation

gacholio
Copy link
Contributor

The arraycopy INL builds a frame for many error cases and the value type case which may require allocation. Simplifying the code so the frame is always built early greatly simplifies the code and corrects a problem introduced in #17732 (INL frame build, tear down and rebuild is no longer allowed in general and I missed a case here). It also appear to fix the reported issue, though I'm not entirely sure why.

Also fix a missing frame build in the Thread interrupted INL.

Fixes: #17875

@gacholio gacholio requested a review from tajila July 29, 2023 04:03
The arraycopy INL builds a frame for many error cases and the value type
case which may require allocation. Simplifying the code so the frame is
always built early greatly simplifies the code and corrects a problem
introduced in eclipse-openj9#17732 (INL frame build, tear down and rebuild is no
longer allowed in general and I missed a case here). It also appear to
fix the reported issue, though I'm not entirely sure why.

Also fix a missing frame build in the Thread interrupted INL.

Fixes: eclipse-openj9#17875

Signed-off-by: Graham Chapman <graham_chapman@ca.ibm.com>
@tajila
Copy link
Contributor

tajila commented Jul 31, 2023

Jenkins test sanity,extended xlinuxval jdknext

@tajila
Copy link
Contributor

tajila commented Jul 31, 2023

Jenkins test sanity xlinuxvalst jdknext

@tajila
Copy link
Contributor

tajila commented Jul 31, 2023

jenkins test sanity alinux64 jdk21

@tajila
Copy link
Contributor

tajila commented Jul 31, 2023

jenkins compile win jdk11

@gacholio
Copy link
Contributor Author

gacholio commented Aug 1, 2023

JVMTI failures appear to be either a filesystem issue or a broken exclude mechanism in the testing:

12:49:58  java.io.FileNotFoundException: /home/jenkins/workspace/Test_openjdknext_j9_sanity.functional_x86-64_linux_vt_standard_Personal_testList_0/aqa-tests/TKG/../../jvmtest/functional/cmdLineTests/jvmtitests/jvmtitests_excludes_22.xml (No such file or directory)
12:49:58  	at java.base/java.io.FileInputStream.open0(Native Method)
12:49:58  	at java.base/java.io.FileInputStream.open(FileInputStream.java:213)
12:49:58  	at java.base/java.io.FileInputStream.<init>(FileInputStream.java:152)
12:49:58  	at java.base/java.io.FileInputStream.<init>(FileInputStream.java:106)
12:49:58  	at com.oti.j9.exclude.ExcludeList.readFrom(ExcludeList.java:71)
12:49:58  	at MainTester.main(MainTester.java:97)
12:49:58  java.lang.NullPointerException
12:49:58  	at java.base/java.io.Reader.<init>(Reader.java:168)
12:49:58  	at java.base/java.io.InputStreamReader.<init>(InputStreamReader.java:88)
12:49:58  	at com.oti.j9.exclude.XMLParser.parse(XMLParser.java:468)
12:49:58  	at com.oti.j9.exclude.XMLInterface.parse(XMLInterface.java:138)
12:49:58  	at com.oti.j9.exclude.ExcludeList.readFrom(ExcludeList.java:83)
12:49:58  	at com.oti.j9.exclude.ExcludeList.readFrom(ExcludeList.java:75)
12:49:58  	at MainTester.main(MainTester.java:97)
12:49:58  Exiting...
12:49:58  Exception in thread "main" java.lang.NullPointerException: Cannot invoke "com.oti.j9.exclude.ExcludeList.explain(java.io.PrintStream)" because "excludeList" is null
12:49:58  	at MainTester.main(MainTester.java:99)

@gacholio
Copy link
Contributor Author

gacholio commented Aug 1, 2023

The JCL tests fail for more real-looking reasons, but I doubt it has anything to do with this change (is the VT build just stale and broken?).

@JasonFengJ9
Copy link
Member

12:49:58 java.io.FileNotFoundException: /home/jenkins/workspace/Test_openjdknext_j9_sanity.functional_x86-64_linux_vt_standard_Personal_testList_0/aqa-tests/TKG/../../jvmtest/functional/cmdLineTests/jvmtitests/jvmtitests_excludes_22.xml (No such file or directory)

It is fixed by

@gacholio
Copy link
Contributor Author

gacholio commented Aug 1, 2023

Jenkins test sanity xlinuxvalst jdknext

@gacholio
Copy link
Contributor Author

gacholio commented Aug 1, 2023

The JCL tests fail for more real-looking reasons, but I doubt it has anything to do with this change (is the VT build just stale and broken?).

jdknext is JDK22 now - perhaps that's the cause of the failures.

@gacholio
Copy link
Contributor Author

gacholio commented Aug 1, 2023

The JCL tests continue to fail (no surprise since the above fix was only for JVMTI tests):

https://openj9-jenkins.osuosl.org/job/Test_openjdknext_j9_sanity.functional_x86-64_linux_vt_standard_Personal/39/tapTestReport/

@tajila @JasonFengJ9 Are these failures expected?

@JasonFengJ9
Copy link
Member

FAILED: test_loadMessages_EN

Missed latest_exclude_22.txt, just opened

@JasonFengJ9
Copy link
Member

@gacholio Could you try another run?

@gacholio
Copy link
Contributor Author

gacholio commented Aug 1, 2023

Jenkins test sanity xlinuxvalst jdknext

@gacholio
Copy link
Contributor Author

gacholio commented Aug 2, 2023

Thanks @JasonFengJ9 - it's passing now. @tajila This is ready to go.

@gacholio
Copy link
Contributor Author

gacholio commented Aug 2, 2023

@JasonFengJ9 Consider automatically propagating the exclude lists (and whatever else is versioned for the JDK level) when a new release is added. While it may be inaccurate, it's certainly better than failing 100s of tests in each new release.

@JasonFengJ9
Copy link
Member

@tajila tajila merged commit 0f8918b into eclipse-openj9:master Aug 2, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Value Types: GC crash in VM_ValueTypeHelpers::loadFlattenableArrayElement when array flattening is enabled
3 participants