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

Use arraycmplen opcode #17382

Merged
merged 1 commit into from Sep 7, 2023
Merged

Conversation

Spencer-Comin
Copy link
Contributor

arraycmp opcode with arrayCmpLen flag set is replaced with the opcode arraycmplen in eclipse/omr#6983.

@Spencer-Comin Spencer-Comin force-pushed the split-arraycmp branch 2 times, most recently from c19f947 to 964ea51 Compare May 12, 2023 17:44
@Spencer-Comin
Copy link
Contributor Author

Spencer-Comin commented May 16, 2023

This has passed internal jenkins sanity tests for JDK11 and JDK8 on Z, x86, Power, and AArch64

@jdmpapin
Copy link
Contributor

Please see my follow-up response to my earlier review comment - mentioning it here just for visibility

@jdmpapin
Copy link
Contributor

Is this in draft state just in order to wait for eclipse/omr#6983 to be merged first? In case it is, the two PRs will actually need a coordinated merge

@Spencer-Comin Spencer-Comin marked this pull request as ready for review June 19, 2023 14:33
@jdmpapin
Copy link
Contributor

Jenkins test sanity.functional,sanity.openjdk all jdk8,jdk11,jdk17,jdk20 depends eclipse/omr#6983

@jdmpapin
Copy link
Contributor

Please look into the 32-bit Windows failures, which look related to these changes. They're crashing while compiling methods that can be expected to involve arraycmplen:

  • jit/test/loopReduction/longMemCmp.test
  • com/ibm/jit/JITHelpers.intrinsicIndexOfStringUTF16

Note that Java_java_lang_invoke_ThunkTuple_initialInvokeExactThunk is not actually related to these crashes. It shows up in the stack trace because of a lack of symbols in the code that's actually running.

Probably codegen will need to be adjusted for x86-32.


Other failures so far:

The Mac failure is #11930.

The AIX builds failed with "Deadlock condition if locked," which seems to be #8625.

The z Linux failure is a timeout in a CRIU test (cmdLineTester_criu_nonPortableRestore_Xdump_events_4):

Testing: Restore trace options test with -Xtrace before checkpoint - 2
...
***[TEST INFO 2023/06/20 01:06:47] ProcessKiller detected a timeout after 300000 milliseconds!***
...
***[TEST INFO 2023/06/20 01:07:47] executing kill -ABRT 1242972***
***[TEST INFO 2023/06/20 01:07:47] kill -ABRT signal sent***
Time spent executing: 360334 milliseconds
Test result: FAILED

I don't see that this particular issue is known, but I can scarcely imagine that it's related to these changes.

@Spencer-Comin
Copy link
Contributor Author

Reverting this PR (and associated OMR PR eclipse/omr#6983) to draft while I resolve the failing tests

@Spencer-Comin Spencer-Comin marked this pull request as draft June 22, 2023 13:34
@Spencer-Comin Spencer-Comin marked this pull request as ready for review July 14, 2023 14:05
@Spencer-Comin
Copy link
Contributor Author

I did some tweaking to this PR and eclipse/omr#6983 to resolve failures in x86-32, it should be good to go now

@jdmpapin
Copy link
Contributor

ddrgen failed on Windows. This has been observed recently in the OMR acceptance build - see #18015

Jenkins test sanity.functional,sanity.openjdk win jdk21 depends eclipse/omr#6983

@jdmpapin
Copy link
Contributor

The z Linux JDK11 sanity.openjdk failure is in java/nio/Buffer/Chew.java

[2023-08-28T19:20:25.270Z] java.lang.OutOfMemoryError: Direct buffer memory
[2023-08-28T19:20:25.270Z] 	at java.base/java.nio.Bits.reserveMemory(Bits.java:175)
[2023-08-28T19:20:25.270Z] 	at java.base/java.nio.DirectByteBuffer.<init>(DirectByteBuffer.java:123)
[2023-08-28T19:20:25.270Z] 	at java.base/java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:317)

This is #17723

Jenkins test sanity.openjdk zlinux jdk11 depends eclipse/omr#6983

@jdmpapin
Copy link
Contributor

The x86 Mac JDK17 sanity.functional failure is SharedCPEntryInvokerTests_2 crashing here:

getJNIMethodID+0x6c (0x0000000004F841BC [libj9vm29.dylib+0x401bc])
prepareToFixMemberNamesObjectIteratorCallback+0x158 (0x0000000005C186B8 [libj9jvmti29.dylib+0x336b8])
j9mm_iterate_region_objects+0xdd (0x000000000552E60D [libj9gc29.dylib+0xe560d])
j9mm_iterate_all_objects+0xbb (0x000000000552F40B [libj9gc29.dylib+0xe640b])
prepareToFixMemberNames+0x46 (0x0000000005C18546 [libj9jvmti29.dylib+0x33546])
redefineClassesCommon+0x31b (0x0000000005BECFCB [libj9jvmti29.dylib+0x7fcb])
jvmtiRedefineClasses+0xc2 (0x0000000005BECC42 [libj9jvmti29.dylib+0x7c42])
Java_com_ibm_jvmti_tests_redefineClasses_rc001_redefineClass+0xb1 (0x0000000005D4E941 [libjvmtitest.dylib+0x13941])

I'll look into this one myself

@Spencer-Comin
Copy link
Contributor Author

The AIX failures are an infrastructure issue; they're all failing with "No space left on device".

The Test_openjdk8_j9_sanity.functional_x86-64_windows_Personal failure also looks like an infra issue: "Cannot delete workspace".

Besides the infra issues and the failure in Test_openjdk17_j9_sanity.functional_x86-64_mac_Personal that @jdmpapin is investigating, all other failures are due to known issues.

@jdmpapin
Copy link
Contributor

jdmpapin commented Sep 5, 2023

The crash on Mac is unrelated. I've opened #18076 for it

@jdmpapin
Copy link
Contributor

jdmpapin commented Sep 5, 2023

Jenkins test sanity.functional,sanity.openjdk all jdk8,jdk11,jdk17,jdk21 depends eclipse/omr#6983

@jdmpapin
Copy link
Contributor

jdmpapin commented Sep 5, 2023

Test_openjdk21_j9_sanity.openjdk_aarch64_linux_Personal failed in java/foreign/loaderLookup/TestLoaderLookup.java:

[2023-09-05T17:27:12.594Z] java.lang.reflect.InvocationTargetException
[2023-09-05T17:27:12.594Z] 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:115)
[2023-09-05T17:27:12.594Z] 	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
[2023-09-05T17:27:12.594Z] 	at TestLoaderLookup.main(TestLoaderLookup.java:57)
[2023-09-05T17:27:12.594Z] 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
[2023-09-05T17:27:12.594Z] 	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
[2023-09-05T17:27:12.594Z] 	at com.sun.javatest.regtest.agent.MainWrapper$MainTask.run(MainWrapper.java:138)
[2023-09-05T17:27:12.594Z] 	at java.base/java.lang.Thread.run(Thread.java:1595)
[2023-09-05T17:27:12.594Z] Caused by: java.lang.NullPointerException: Cannot invoke "java.util.Optional.empty()" because "mapper" is null
[2023-09-05T17:27:12.594Z] 	at java.base/java.util.Optional.map(Optional.java:258)
[2023-09-05T17:27:12.594Z] 	at java.base/jdk.internal.foreign.abi.AbstractLinker.stripNames(AbstractLinker.java:279)
[2023-09-05T17:27:12.594Z] 	at java.base/jdk.internal.foreign.abi.AbstractLinker.downcallHandle0(AbstractLinker.java:102)
[2023-09-05T17:27:12.594Z] 	at java.base/jdk.internal.foreign.abi.AbstractLinker.downcallHandle(AbstractLinker.java:88)
[2023-09-05T17:27:12.594Z] 	at invoker.Invoker.invoke(Invoker.java:31)
[2023-09-05T17:27:12.594Z] 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
[2023-09-05T17:27:12.594Z] 	... 6 more

This is #18074. The issue says it's a segmentation fault, but at least this failure linked from the issue manifests as an InvocationTargetException caused by NPE

Test_openjdk21_j9_sanity.openjdk_s390x_linux_Personal crashed in OOMEInAQS (#16659)

Test_openjdk21_j9_sanity.openjdk_x86-64_windows_Personal timed out in java/lang/Thread/virtual/stress/Skynet.java#default (#16728)

Jenkins test sanity.openjdk all jdk21 depends eclipse/omr#6983

@jdmpapin
Copy link
Contributor

jdmpapin commented Sep 5, 2023

Jenkins test sanity.openjdk alinux,zlinux,win jdk21 depends eclipse/omr#6983

@jdmpapin
Copy link
Contributor

jdmpapin commented Sep 5, 2023

Jenkins test sanity.openjdk alinux64,zlinux,win jdk21 depends eclipse/omr#6983

@jdmpapin
Copy link
Contributor

jdmpapin commented Sep 5, 2023

Test_openjdk11_j9_sanity.functional_x86-64_windows_Personal failed with an off-by-1 value in testThreadMXBeanProxy:

[2023-09-05T20:17:45.313Z] FAILED: testThreadMXBeanProxy
[2023-09-05T20:17:45.313Z] java.lang.AssertionError: expected:<25> but was:<24>

Looks like #17866

Test_openjdk11_j9_sanity.functional_x86-64_linux_Personal didn't launch properly, and there are no testList_0/1 links in the log, but there is this:

Cannot contact ub16x64j91: java.lang.InterruptedException

Jenkins test sanity.functional xlinux,win jdk11 depends eclipse/omr#6983

@jdmpapin
Copy link
Contributor

jdmpapin commented Sep 5, 2023

Test_openjdk11_j9_sanity.openjdk_x86-64_windows_Personal failed with RuntimeException: PortUnreachableException not thrown in sun/security/krb5/auto/Unreachable.java, which is #17743

Jenkins test sanity.openjdk win jdk11 depends eclipse/omr#6983

@jdmpapin
Copy link
Contributor

jdmpapin commented Sep 5, 2023

Test_openjdk21_j9_sanity.openjdk_s390x_linux_Personal segfaulted in OOMEInAQS again (#16659)

Test_openjdk21_j9_sanity.openjdk_ppc64_aix_Personal crashed and timed out in Skynet.java#default (#16728), which should now be excluded

Jenkins test sanity.openjdk zlinux,aix jdk21 depends eclipse/omr#6983

@jdmpapin
Copy link
Contributor

jdmpapin commented Sep 6, 2023

Test_openjdk11_j9_sanity.openjdk_x86-64_linux_Personal: java/security/SecureRandom/NoSync.java timed out while Thread-34 is reseeding something and other threads are waiting for it (#17576)

Jenkins test sanity.openjdk xlinux jdk11 depends eclipse/omr#6983

@jdmpapin
Copy link
Contributor

jdmpapin commented Sep 6, 2023

Test_openjdk21_j9_sanity.openjdk_x86-64_mac_Personal failed to run testList_0 due to an infra problem:

Cannot contact mac12-x86-1: java.lang.InterruptedException

Jenkins test sanity.openjdk xmac jdk21 depends eclipse/omr#6983

@jdmpapin
Copy link
Contributor

jdmpapin commented Sep 6, 2023

Test_openjdk17_j9_sanity.openjdk_aarch64_mac_Personal: testList_1 failed with Cannot contact mac13-aarch64-8: java.lang.InterruptedException, but it looks like all tests passed

@jdmpapin
Copy link
Contributor

jdmpapin commented Sep 6, 2023

Test_openjdk8_j9_sanity.openjdk_x86-64_linux_Personal: testList_1 failed with what looks to be an infra problem:

19:23:29  Exception: java.io.IOException: Failed to copy file:/var/lib/jenkins/jobs/test.getDependency/builds/846/archive/jython-standalone.jar to /home/jenkins/workspace/Test_openjdk8_j9_sanity.openjdk_x86-64_linux_Personal_testList_1/aqa-tests/TKG/lib/jython-standalone.jar
...
19:23:29  Cannot run copyArtifacts from test.getDependency. Skipping copyArtifacts...
[Pipeline] fileExists
...
19:23:29  Exception: org.jenkinsci.plugins.workflow.support.steps.AgentOfflineException: Unable to create live FilePath for cent6-x64-5; cent6-x64-5 was marked offline: Timed out for last 5 attempts

Jenkins test sanity.openjdk xlinux jdk8 depends eclipse/omr#6983

@jdmpapin
Copy link
Contributor

jdmpapin commented Sep 6, 2023

Test_openjdk11_j9_sanity.functional_x86-64_linux_Personal: Cannot contact ub16x64j91

Jenkins test sanity.functional xlinux jdk11 depends eclipse/omr#6983

@jdmpapin
Copy link
Contributor

jdmpapin commented Sep 6, 2023

Test_openjdk17_j9_sanity.openjdk_x86-64_linux_Personal: testList_2:

AgentOfflineException: Unable to create live FilePath for cent7-x64-1; cent7-x64-1 was marked offline: Timed out for last 5 attempts

Jenkins test sanity.openjdk xlinux jdk17 depends eclipse/omr#6983

@jdmpapin
Copy link
Contributor

jdmpapin commented Sep 6, 2023

Test_openjdk21_j9_sanity.openjdk_ppc64le_linux_Personal: Skynet.java#default failed

Test_openjdk21_j9_sanity.openjdk_x86-64_linux_Personal: testList_2:

AgentOfflineException: Unable to create live FilePath for ub16x64j91; ub16x64j91 was marked offline: Timed out for last 5 attempts

Jenkins test sanity.openjdk xlinux,plinux jdk21 depends eclipse/omr#6983

@jdmpapin
Copy link
Contributor

jdmpapin commented Sep 6, 2023

These two failed with Cannot contact cent7-x64-$n: java.lang.InterruptedException in the build step (Build_JDK{8,17}_x86-64_linux_Personal)

Jenkins test sanity.openjdk xlinux jdk8,jdk17 depends eclipse/omr#6983

@jdmpapin
Copy link
Contributor

jdmpapin commented Sep 6, 2023

Test_openjdk17_j9_sanity.functional_x86-64_mac_Personal: testList_0: Cannot contact mac10-x86-1: java.lang.InterruptedException

Jenkins test sanity.functional xmac jdk17 depends eclipse/omr#6983

@jdmpapin
Copy link
Contributor

jdmpapin commented Sep 7, 2023

Test_openjdk8_j9_sanity.openjdk_x86-64_linux_Personal: timed out in java/util/concurrent/BlockingQueue/MultipleProducersSingleConsumerLoops.java (#10158)

The following jobs were aborted for some reason. Also, oddly, they still show as pending in the list of checks for this PR ("3 pending," "Pending — Build Started"). I might have looked at them sooner if there had been an ❌

@jdmpapin
Copy link
Contributor

jdmpapin commented Sep 7, 2023

Jenkins test sanity.functional,sanity.openjdk xlinux jdk11 depends eclipse/omr#6983

@jdmpapin
Copy link
Contributor

jdmpapin commented Sep 7, 2023

Jenkins test sanity.openjdk xlinux jdk8 depends eclipse/omr#6983

@jdmpapin
Copy link
Contributor

jdmpapin commented Sep 7, 2023

Jenkins test sanity.openjdk xmac jdk21 depends eclipse/omr#6983

@Spencer-Comin
Copy link
Contributor Author

Test_openjdk11_j9_sanity.functional_x86-64_linux_Personal failure is unrelated to arraycmplen. It's a CRIU failure, failing with "can't bind server address: Address already in use"

@jdmpapin
Copy link
Contributor

jdmpapin commented Sep 7, 2023

The failure Spencer mentioned is #14706. There are no other failures in that job

The only other job that appears to have failed is Test_openjdk17_j9_sanity.openjdk_aarch64_mac_Personal, in which all tests actually passed as mentioned in #17382 (comment)

@jdmpapin jdmpapin merged commit 53a5ec5 into eclipse-openj9:master Sep 7, 2023
96 of 99 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants