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

Retrieve constant dynamic info from the JITClient #8277

Merged
merged 1 commit into from Jan 31, 2020

Conversation

a7ehuo
Copy link
Contributor

@a7ehuo a7ehuo commented Jan 10, 2020

Dynamic constant is not stored at the JITServer. It needs to be retrieved from the client side. This PR has dependency on the new dynamicConstant API defined in eclipse/omr#4726.

Also increased the JITServer MINOR_NUMBER to 3 since the new message types have to be handled at the client as well.

This commit fixes the server crash when running Java 11 sanity test CondyPrimitive_1.

Related to #7567.

Signed-off-by: Annabelle Huo Annabelle.Huo@ibm.com

@a7ehuo a7ehuo force-pushed the constantDynamics branch 5 times, most recently from 85803e3 to bc89bcd Compare January 10, 2020 22:27
@mpirvu mpirvu added the comp:jitserver Artifacts related to JIT-as-a-Service project label Jan 14, 2020
@mpirvu mpirvu added this to In progress in JIT as a Service via automation Jan 14, 2020
@a7ehuo a7ehuo force-pushed the constantDynamics branch 2 times, most recently from 83041a5 to ec633b3 Compare January 14, 2020 15:17
@mpirvu
Copy link
Contributor

mpirvu commented Jan 14, 2020

Looking at how this is used:

           // Use aconst for null object
            if (!isCondyPrimitive && !isCondyUnresolved)
               {
               TR::VMAccessCriticalSection condyCriticalSection(comp()->fej9());
               uintptrj_t* objLocation = (uintptrj_t*)_methodSymbol->getResolvedMethod()->dynamicConstant(cpIndex);
               uintptrj_t obj = *objLocation;
               if (obj == 0)
                  {
                  loadConstant(TR::aconst, (void *)0);
                  return;
                  }
               }

That deference, *objLocation; cannot be done at the server.

@mpirvu
Copy link
Contributor

mpirvu commented Jan 14, 2020

In general, every time the mainline acquires VM access, the JITServer implementation may have a problem. I am seeing the same pattern in another place:

              // Generate constant for resolved primitive condy.
               if(!isCondyUnresolved)
                  {
                  TR::VMAccessCriticalSection primitiveCondyCriticalSection(comp()->fej9(),
                                                            TR::VMAccessCriticalSection::tryToAcquireVMAccess,
                                                            comp());
                  if (primitiveCondyCriticalSection.hasVMAccess())
                     {
                     uintptrj_t* objLocation = (uintptrj_t*)_methodSymbol->getResolvedMethod()->dynamicConstant(cpIndex);
                     uintptrj_t obj = *objLocation;

@a7ehuo
Copy link
Contributor Author

a7ehuo commented Jan 14, 2020

The dereference is taken care of by this PR. The pointer will be dereferenced on the client side and sent back to the server in
void * TR_ResolvedJ9JITServerMethod::dynamicConstant(I_32 cpIndex, uintptrj_t &obj).

To consolidate the messages sent between the server and the client, the existing API [1]TR_ResolvedJ9Method::dynamicConstant(I_32 cpIndex) needs to be changed into TR_ResolvedJ9Method::dynamicConstant(I_32 cpIndex, uintptrj_t &obj). obj is the dereferenced uintptrj_t from the client side in the JITServer mode. Keeping the existing dynamicConstant API would require the server to send two messages to the client.

[1]
https://github.com/eclipse/openj9-omr/blob/947946e7dc3f0b0694401bd72aac5d26c779e8d8/compiler/compile/ResolvedMethod.hpp#L140

@a7ehuo
Copy link
Contributor Author

a7ehuo commented Jan 14, 2020

@cathyzhyi Could you help review the above suggestion on changing the dynamicConstant API ? Thanks!

@cathyzhyi
Copy link
Contributor

The dereference is taken care of by this PR. The pointer will be dereferenced on the client side and sent back to the server in
void * TR_ResolvedJ9JITServerMethod::dynamicConstant(I_32 cpIndex, uintptrj_t &obj).

To consolidate the messages sent between the server and the client, the existing API [1]TR_ResolvedJ9Method::dynamicConstant(I_32 cpIndex) needs to be changed into TR_ResolvedJ9Method::dynamicConstant(I_32 cpIndex, uintptrj_t &obj). obj is the dereferenced uintptrj_t from the client side in the JITServer mode. Keeping the existing dynamicConstant API would require the server to send two messages to the client.

[1]
https://github.com/eclipse/openj9-omr/blob/947946e7dc3f0b0694401bd72aac5d26c779e8d8/compiler/compile/ResolvedMethod.hpp#L140

The proposed change sounds good to me. IMO, it’s better to keep the original API that only takes cpIndex so it looks like the following and the existing places calling this API can be kept unchanged:

TR_ResolvedJ9Method::dynamicConstant(I_32 cpIndex){
      uintptrj_t obj;
      dynamicConstant(cpIndex, obj); <---- calling new API here
}

Some comments for the new API saying the extra argument is for jit as a service is also needed.

@a7ehuo
Copy link
Contributor Author

a7ehuo commented Jan 15, 2020

eclipse/omr#4726 is created to add the new API. On a second thought, I think TR_ResolvedJ9Method::dynamicConstant(I_32 cpIndex) should be removed eventually to prevent the caller from de-referencing the pointer at the server because the caller would not be able to know if it's at the server or the client. It's safer to force to use the new API to retrieve the dynamic constant value.

Copy link
Contributor

@mpirvu mpirvu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have some comments

runtime/compiler/env/j9method.cpp Show resolved Hide resolved
runtime/compiler/env/j9method.h Outdated Show resolved Hide resolved
runtime/compiler/env/j9methodServer.cpp Outdated Show resolved Hide resolved
runtime/compiler/control/JITClientCompilationThread.cpp Outdated Show resolved Hide resolved
runtime/compiler/ilgen/Walker.cpp Outdated Show resolved Hide resolved
@a7ehuo a7ehuo force-pushed the constantDynamics branch 2 times, most recently from 872b366 to 4e10bcd Compare January 16, 2020 03:01
@mpirvu
Copy link
Contributor

mpirvu commented Jan 16, 2020

Another issue I forgot about: if there is a chance that these changes may break the compatibility with an older server/client, then we have to increment the version number.

@a7ehuo a7ehuo force-pushed the constantDynamics branch 2 times, most recently from f38a319 to 4dab423 Compare January 16, 2020 21:05
@a7ehuo a7ehuo changed the title WIP: Retrieve constant dynamic info from the JITClient Retrieve constant dynamic info from the JITClient Jan 21, 2020
@a7ehuo a7ehuo marked this pull request as ready for review January 21, 2020 16:32
@a7ehuo
Copy link
Contributor Author

a7ehuo commented Jan 21, 2020

@mpirvu All comments addressed. Ready for another review. Thanks.

Copy link
Contributor

@mpirvu mpirvu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@mpirvu
Copy link
Contributor

mpirvu commented Jan 22, 2020

Jenkins test sanity xlinuxjit jdk11

@mpirvu mpirvu self-assigned this Jan 22, 2020
@a7ehuo
Copy link
Contributor Author

a7ehuo commented Jan 24, 2020

Xlinux JDK11 test passed on non-JITServer as below:

17:10:07  TOTAL: 280   EXECUTED: 168   PASSED: 168   FAILED: 0   DISABLED: 4   SKIPPED: 108
17:10:07  ALL TESTS PASSED
17:10:07  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
17:10:07  
17:10:07  _sanity.functional done

@mpirvu
Copy link
Contributor

mpirvu commented Jan 24, 2020

@a7ehuo Could you please rebase this PR? There is an openj9 PR that I just merged which will enable again JITServer testing. Thanks

@a7ehuo
Copy link
Contributor Author

a7ehuo commented Jan 24, 2020

@mpirvu Rebased the PR into the commit 44d7d1f.

@mpirvu
Copy link
Contributor

mpirvu commented Jan 24, 2020

Jenkins test sanity xlinuxjit jdk11

@a7ehuo
Copy link
Contributor Author

a7ehuo commented Jan 27, 2020

jit_tr_0_FAILED in Java11 x86-64_linux_jit sanity test with NPE failure as below. It looks like the same issue that's been tracked in #8370 or #8317 (#8317 (comment))

16:59:06  ===============================================
16:59:06      chtableTest
16:59:06      Tests run: 0, Failures: 0, Skips: 0
16:59:06  ===============================================
16:59:06  
16:59:06  Exception in thread "main" java.lang.NullPointerException
16:59:06  	at java.base/java.util.concurrent.ConcurrentLinkedQueue$Node.<init>(ConcurrentLinkedQueue.java)
16:59:06  	at java.base/java.util.concurrent.ConcurrentLinkedQueue.offer(ConcurrentLinkedQueue.java:355)
16:59:06  	at java.base/java.util.concurrent.ConcurrentLinkedQueue.add(ConcurrentLinkedQueue.java:283)
16:59:06  	at org.testng.TestListenerAdapter.onTestFailure(TestListenerAdapter.java:46)
16:59:06  	at org.testng.internal.TestListenerHelper.runTestListeners(TestListenerHelper.java:67)
16:59:06  	at org.testng.internal.Invoker.runTestListeners(Invoker.java:1388)
16:59:06  	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1041)
16:59:06  	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
16:59:06  	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
16:59:06  	at org.testng.TestRunner.privateRun(TestRunner.java:648)
16:59:06  	at org.testng.TestRunner.run(TestRunner.java:505)
16:59:06  	at org.testng.SuiteRunner.runTest(SuiteRunner.java:455)
16:59:06  	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:450)
16:59:06  	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:415)
16:59:06  	at org.testng.SuiteRunner.run(SuiteRunner.java:364)
16:59:06  	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
16:59:06  	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:84)
16:59:06  	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1208)
16:59:06  	at org.testng.TestNG.runSuitesLocally(TestNG.java:1137)
16:59:06  	at org.testng.TestNG.runSuites(TestNG.java:1049)
16:59:06  	at org.testng.TestNG.run(TestNG.java:1017)
16:59:06  	at org.testng.TestNG.privateMain(TestNG.java:1354)
16:59:06  	at org.testng.TestNG.main(TestNG.java:1323)
17:11:39  Cannot contact ub16x64j98: java.lang.InterruptedException
Cancelling nested steps due to timeout
01:51:30  Sending interrupt signal to process

@mpirvu
Copy link
Contributor

mpirvu commented Jan 27, 2020

@a7ehuo Can you tell whether the tests that were supposed to be fixed are passing with this change?
If not, Harry has a fix for #8370 so we could wait for that to be merged first.

@a7ehuo
Copy link
Contributor Author

a7ehuo commented Jan 27, 2020

This PR fixes the JITServer crash when running sanity test CondyPrimitive_1. The Jenkins test (https://ci.eclipse.org/openj9/job/Test_openjdk11_j9_sanity.functional_x86-64_linux_jit_Personal/17/) didn't get to run this test yet. It had run 25 test cases and 5 failed, all due to the NPE related to java.base/java.util.concurrent.ConcurrentLinkedQueue.offer. We could test this PR again when the fix for #8370 is merged.

jsr335tests_3_FAILED
jsr335tests_5_FAILED
stringConcatOptTest_0_FAILED
jit_jar_0_FAILED
jit_tr_0_FAILED
SharedCPEntryInvokerTests_0_PASSED
SharedCPEntryInvokerTests_1_PASSED
J9vmTest_2_PASSED
J9vmTest_4_PASSED
J9vmTest_5_PASSED
jvmnativestest_0_PASSED
SharedClassesSysVTesting_0_PASSED
jsr335tests_1_PASSED
jsr335tests_3_FAILED
jsr335tests_5_FAILED
jsr335tests_openj9_none_SCC_1_PASSED
jsr335tests_openj9_none_SCC_3_PASSED
jsr335tests_openj9_none_SCC_5_PASSED
jit_vich_0_PASSED
stringConcatOptTest_0_FAILED
jit_jitt_0_PASSED
jit_jitt_1_PASSED
jit_jitt_2_PASSED
jit_jitt_3_PASSED
jit_jitt_openj9_none_SCC_0_PASSED
jit_jitt_openj9_none_SCC_1_PASSED
jit_jitt_openj9_none_SCC_2_PASSED
jit_jitt_openj9_none_SCC_3_PASSED
jit_jar_0_FAILED
jit_tr_0_FAILED

@mpirvu
Copy link
Contributor

mpirvu commented Jan 27, 2020

Thanks. Will wait for testing on 8370.

@mpirvu
Copy link
Contributor

mpirvu commented Jan 29, 2020

@a7ehuo I have merged #8410. Could you please rebase this PR so that I can start testing? Thanks

Dynamic constant is not stored at the JITServer.
The server will send one message to retrieve both the pointer
and the object values in `TR_ResolvedJ9JITServerMethod::dynamicConstant()`.
It has dependency on the new `dynamicConstant` API
defined in eclipse/omr#4726.

Also increased the JITServer `MINOR_NUMBER` to `3` since
the new message types have to be handled at the client as well.

This commit fixes the server crash when running
Java 11 sanity test `CondyPrimitive_1`.

Related to eclipse-openj9#7567

Signed-off-by: Annabelle Huo <Annabelle.Huo@ibm.com>
@mpirvu
Copy link
Contributor

mpirvu commented Jan 29, 2020

Jenkins test sanity xlinuxjit,plinuxjit jdk11

@a7ehuo
Copy link
Contributor Author

a7ehuo commented Jan 30, 2020

20:31:11  FAILED test targets:
20:31:11  	cmdLineTester_getPid_0
20:31:11  
20:31:11  TOTAL: 284   EXECUTED: 172   PASSED: 171   FAILED: 1   DISABLED: 4   SKIPPED: 108
20:31:11  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  • CondyPrimitive_* test cases that are directly related to this pull request all passed in x86 and ppc.

  • Three test case failures in ppc. The crashes in StringPeepholeTest_0 and jit_jar_0 look like the same. Will take a look next.

17:42:50  FAILED test targets:
17:42:50  	jit_jar_0
17:42:50  	StringPeepholeTest_0
17:42:50  	cmdLineTester_getPid_0
17:42:50  
17:42:50  TOTAL: 284   EXECUTED: 162   PASSED: 159   FAILED: 3   DISABLED: 4   SKIPPED: 118
17:42:50  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Method_being_compiled=java/lang/StringCoding.decode(Ljava/nio/charset/Charset;[BII)Ljava/lang/StringCoding$Result;
===============================================
Running test jit_jar_0 ...
===============================================
jit_jar_0 Start Time: Wed Jan 29 21:14:43 2020 Epoch Time (ms): 1580332483266
variation: -Xjit:optlevel=warm,count=0 -DjarTesterArgs=/home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdk-tests/TKG/../../jvmtest/functional/JIT_Test/jitt.jar
JVM_OPTIONS: -XX:+UseJITServer -Xcompressedrefs -Xjit:optlevel=warm,count=0 -DjarTesterArgs=/home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdk-tests/TKG/../../jvmtest/functional/JIT_Test/jitt.jar 
JITServer is currently a technology preview. Its use is not yet supported
#0: /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9jit29.so(+0xa0bfd4) [0x3fff8a61bfd4]
#1: /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9jit29.so(+0xa1db38) [0x3fff8a62db38]
#2: /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9jit29.so(+0x1abb90) [0x3fff89dbbb90]
#3: /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9prt29.so(+0x2f920) [0x3fff8b17f920]
#4: [0x3fff8c0604d8]
#5: /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9jit29.so(+0x210e3c) [0x3fff89e20e3c]
#6: /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9jit29.so(+0x3bf070) [0x3fff89fcf070]
#7: /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9jit29.so(+0x365cbc) [0x3fff89f75cbc]
#8: /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9jit29.so(+0x372bb0) [0x3fff89f82bb0]
#9: /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9jit29.so(+0x1c3110) [0x3fff89dd3110]
#10: /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9jit29.so(+0x1c409c) [0x3fff89dd409c]
#11: /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9prt29.so(+0x30ac8) [0x3fff8b180ac8]
#12: /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9jit29.so(+0x1c61d8) [0x3fff89dd61d8]
#13: /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9jit29.so(+0x1c68e8) [0x3fff89dd68e8]
#14: /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9jit29.so(+0x1c1980) [0x3fff89dd1980]
#15: /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9jit29.so(+0x1c1e9c) [0x3fff89dd1e9c]
#16: /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9jit29.so(+0x1c1f98) [0x3fff89dd1f98]
#17: /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9prt29.so(+0x30ac8) [0x3fff8b180ac8]
#18: /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9jit29.so(+0x1c2434) [0x3fff89dd2434]
#19: /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9thr29.so(+0x11308) [0x3fff8b221308]
#20: /lib/powerpc64le-linux-gnu/libpthread.so.0(+0x8040) [0x3fff8bfd8040]
#21: function clone+0x98 [0x3fff8bec3bb0]
Unhandled exception
Type=Segmentation error vmState=0x0005ffff
J9Generic_Signal_Number=00000018 Signal_Number=0000000b Error_Value=00000000 Signal_Code=00000001
Handler1=00003FFF8B2E75E0 Handler2=00003FFF8B17F6C0
R0=00003FFF89FCF070 R1=00003FFF88B88F10 R2=00003FFF8AC21400 R3=0000000000000000
R4=0000000000000000 R5=0000000000000000 R6=00003FFF88B8AA98 R7=0000000000000000
R8=00003FFF8A0A4A80 R9=00003FFF8AC5B540 R10=0000000000000000 R11=0000000000000000
R12=00003FFF89E20E08 R13=00003FFF88B96900 R14=00003FFF88B89F98 R15=00003FFF88B89FC8
R16=00003FFF88B89E38 R17=00000000000005A8 R18=00003FFF88B89D08 R19=00003FFF8AC600A0
R20=00003FFF88B8A098 R21=00003FFF88B89758 R22=00003FFF88B8A168 R23=00003FFF88B8AA98
R24=00003FFF88BA1050 R25=00003FFF88B8AA98 R26=0000000000000000 R27=0000000000000000
R28=00003FFF88B89758 R29=00003FFF69A12B10 R30=00003FFF88B89CF0 R31=00003FFF64007370
NIP=00003FFF89E20E3C MSR=800000000280D033 ORIG_GPR3=C0000000008846FC CTR=00003FFF89E20E08
LINK=00003FFF89E20E30 XER=0000000020000000 CCR=0000000042222444 SOFTE=0000000000000001
TRAP=0000000000000300 DAR=0000000000000040 dsisr=0000000040000000 RESULT=0000000000000000
FPR0 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR1 ffffffffffffffff (f: 4294967296.000000, d: -nan)
FPR2 00003fff8ad79040 (f: 2329382912.000000, d: 3.476581e-310)
FPR3 00003fff8ad780a0 (f: 2329379072.000000, d: 3.476581e-310)
FPR4 00003fff8ad7e060 (f: 2329403392.000000, d: 3.476581e-310)
FPR5 00003fff8ad79820 (f: 2329384960.000000, d: 3.476581e-310)
FPR6 696e2f6176616a4c (f: 1986095744.000000, d: 7.220371e+199)
FPR7 6f6c667265646e55 (f: 1701080704.000000, d: 5.382300e+228)
FPR8 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR9 0000000000010001 (f: 65537.000000, d: 3.237958e-319)
FPR10 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR11 41cdcd6500000000 (f: 0.000000, d: 1.000000e+09)
FPR12 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR13 00003fff8ad79190 (f: 2329383424.000000, d: 3.476581e-310)
FPR14 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR15 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR16 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR17 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR18 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR19 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR20 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR21 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR22 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR23 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR24 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR25 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR26 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR27 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR28 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR29 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR30 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR31 0000000000000000 (f: 0.000000, d: 0.000000e+00)
Module=/home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9jit29.so
Module_base_address=00003FFF89C10000

Method_being_compiled=java/lang/StringCoding.decode(Ljava/nio/charset/Charset;[BII)Ljava/lang/StringCoding$Result;
Target=2_90_20200129_7 (Linux 4.4.0-145-generic)
CPU=ppc64le (4 logical CPUs) (0x1fe3b0000 RAM)
----------- Stack Backtrace -----------
(0x00003FFF89E20E3C [libj9jit29.so+0x210e3c])
(0x00003FFF89FCF070 [libj9jit29.so+0x3bf070])
(0x00003FFF89F75CBC [libj9jit29.so+0x365cbc])
(0x00003FFF89F82BB0 [libj9jit29.so+0x372bb0])
(0x00003FFF89DD3110 [libj9jit29.so+0x1c3110])
(0x00003FFF89DD409C [libj9jit29.so+0x1c409c])
(0x00003FFF8B180AC8 [libj9prt29.so+0x30ac8])
(0x00003FFF89DD61D8 [libj9jit29.so+0x1c61d8])
(0x00003FFF89DD68E8 [libj9jit29.so+0x1c68e8])
(0x00003FFF89DD1980 [libj9jit29.so+0x1c1980])
(0x00003FFF89DD1E9C [libj9jit29.so+0x1c1e9c])
(0x00003FFF89DD1F98 [libj9jit29.so+0x1c1f98])
(0x00003FFF8B180AC8 [libj9prt29.so+0x30ac8])
(0x00003FFF89DD2434 [libj9jit29.so+0x1c2434])
(0x00003FFF8B221308 [libj9thr29.so+0x11308])
(0x00003FFF8BFD8040 [libpthread.so.0+0x8040])
clone+0x98 (0x00003FFF8BEC3BB0 [libc.so.6+0x123bb0])
---------------------------------------
JVMDUMP039I Processing dump event "gpf", detail "" at 2020/01/29 21:15:02 - please wait.
JVMDUMP032I JVM requested System dump using '/home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdk-tests/TKG/test_output_15803316077384/jit_jar_0/core.20200129.211502.24332.0001.dmp' in response to an event
JVMPORT030W /proc/sys/kernel/core_pattern setting "|/usr/share/apport/apport %p %s %c %d %P" specifies that the core dump is to be piped to an external program.  Attempting to rename either core or core.24367.

JVMDUMP010I System dump written to /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdk-tests/TKG/test_output_15803316077384/jit_jar_0/core.20200129.211502.24332.0001.dmp
JVMDUMP032I JVM requested Java dump using '/home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdk-tests/TKG/test_output_15803316077384/jit_jar_0/javacore.20200129.211502.24332.0002.txt' in response to an event
JVMDUMP010I Java dump written to /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdk-tests/TKG/test_output_15803316077384/jit_jar_0/javacore.20200129.211502.24332.0002.txt
JVMDUMP032I JVM requested Snap dump using '/home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdk-tests/TKG/test_output_15803316077384/jit_jar_0/Snap.20200129.211502.24332.0003.trc' in response to an event
JVMDUMP010I Snap dump written to /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdk-tests/TKG/test_output_15803316077384/jit_jar_0/Snap.20200129.211502.24332.0003.trc
JVMDUMP007I JVM Requesting JIT dump using '/home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdk-tests/TKG/test_output_15803316077384/jit_jar_0/jitdump.20200129.211502.24332.0004.dmp'
JVMDUMP010I JIT dump written to /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdk-tests/TKG/test_output_15803316077384/jit_jar_0/jitdump.20200129.211502.24332.0004.dmp
JVMDUMP013I Processed dump event "gpf", detail "".

jit_jar_0_FAILED
...

===============================================
Running test StringPeepholeTest_0 ...
===============================================
StringPeepholeTest_0 Start Time: Wed Jan 29 21:18:51 2020 Epoch Time (ms): 1580332731814
variation: -XX:-EnableHCR -Xjit:count=0,optLevel=hot
JVM_OPTIONS: -XX:+UseJITServer -Xcompressedrefs -XX:-EnableHCR -Xjit:count=0,optLevel=hot 
JITServer is currently a technology preview. Its use is not yet supported
#0: /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9jit29.so(+0xa0bfd4) [0x3fff7e5cbfd4]
#1: /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9jit29.so(+0xa1db38) [0x3fff7e5ddb38]
#2: /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9jit29.so(+0x1abb90) [0x3fff7dd6bb90]
#3: /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9prt29.so(+0x2f920) [0x3fff7f12f920]
#4: [0x3fff800104d8]
#5: /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9jit29.so(+0x210e3c) [0x3fff7ddd0e3c]
#6: /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9jit29.so(+0x3bf070) [0x3fff7df7f070]
#7: /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9jit29.so(+0x365cbc) [0x3fff7df25cbc]
#8: /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9jit29.so(+0x372bb0) [0x3fff7df32bb0]
#9: /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9jit29.so(+0x1c3110) [0x3fff7dd83110]
#10: /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9jit29.so(+0x1c409c) [0x3fff7dd8409c]
#11: /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9prt29.so(+0x30ac8) [0x3fff7f130ac8]
#12: /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9jit29.so(+0x1c61d8) [0x3fff7dd861d8]
#13: /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9jit29.so(+0x1c68e8) [0x3fff7dd868e8]
#14: /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9jit29.so(+0x1c1980) [0x3fff7dd81980]
#15: /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9jit29.so(+0x1c1e9c) [0x3fff7dd81e9c]
#16: /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9jit29.so(+0x1c1f98) [0x3fff7dd81f98]
#17: /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9prt29.so(+0x30ac8) [0x3fff7f130ac8]
#18: /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9jit29.so(+0x1c2434) [0x3fff7dd82434]
#19: /home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9thr29.so(+0x11308) [0x3fff7f1d1308]
#20: /lib/powerpc64le-linux-gnu/libpthread.so.0(+0x8040) [0x3fff7ff88040]
#21: function clone+0x98 [0x3fff7fe73bb0]
Unhandled exception
Type=Segmentation error vmState=0x0005ffff
J9Generic_Signal_Number=00000018 Signal_Number=0000000b Error_Value=00000000 Signal_Code=00000001
Handler1=00003FFF7F2975E0 Handler2=00003FFF7F12F6C0
R0=00003FFF7DF7F070 R1=00003FFF7CB38F10 R2=00003FFF7EBD1400 R3=0000000000000000
R4=0000000000000000 R5=0000000000000000 R6=00003FFF7CB3AA98 R7=0000000000000000
R8=00003FFF7E054A80 R9=00003FFF7EC0B540 R10=0000000000000000 R11=0000000000000000
R12=00003FFF7DDD0E08 R13=00003FFF7CB46900 R14=00003FFF7CB39F98 R15=00003FFF7CB39FC8
R16=00003FFF7CB39E38 R17=00000000000006BA R18=00003FFF7CB39D08 R19=00003FFF7EC100A0
R20=00003FFF7CB3A098 R21=00003FFF7CB39758 R22=00003FFF7CB3A168 R23=00003FFF7CB3AA98
R24=00003FFF7CB51050 R25=00003FFF7CB3AA98 R26=0000000000000000 R27=0000000000000000
R28=00003FFF7CB39758 R29=00003FFF5D8D2B10 R30=00003FFF7CB39CF0 R31=00003FFF58007370
NIP=00003FFF7DDD0E3C MSR=800000000280D033 ORIG_GPR3=C0000000008846FC CTR=00003FFF7DDD0E08
LINK=00003FFF7DDD0E30 XER=0000000020000000 CCR=0000000042222444 SOFTE=0000000000000001
TRAP=0000000000000300 DAR=0000000000000040 dsisr=0000000040000000 RESULT=0000000000000000
FPR0 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR1 ffffffffffffffff (f: 4294967296.000000, d: -nan)
FPR2 00003fff7ed29040 (f: 2127728640.000000, d: 3.476571e-310)
FPR3 00003fff7ed280a0 (f: 2127724672.000000, d: 3.476571e-310)
FPR4 00003fff7ed2e060 (f: 2127749248.000000, d: 3.476571e-310)
FPR5 00003fff7ed29820 (f: 2127730688.000000, d: 3.476571e-310)
FPR6 696e2f6176616a4c (f: 1986095744.000000, d: 7.220371e+199)
FPR7 6573726168432f74 (f: 1749233536.000000, d: 5.043425e+180)
FPR8 00003fff58041ca0 (f: 1476664448.000000, d: 3.476539e-310)
FPR9 00003fff58041df0 (f: 1476664832.000000, d: 3.476539e-310)
FPR10 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR11 41cdcd6500000000 (f: 0.000000, d: 1.000000e+09)
FPR12 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR13 00003fff7ed29190 (f: 2127729024.000000, d: 3.476571e-310)
FPR14 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR15 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR16 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR17 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR18 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR19 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR20 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR21 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR22 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR23 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR24 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR25 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR26 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR27 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR28 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR29 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR30 0000000000000000 (f: 0.000000, d: 0.000000e+00)
FPR31 0000000000000000 (f: 0.000000, d: 0.000000e+00)
Module=/home/jenkins/jenkins-agent/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/lib/compressedrefs/libj9jit29.so
Module_base_address=00003FFF7DBC0000
...

@a7ehuo
Copy link
Contributor Author

a7ehuo commented Jan 31, 2020

Reproduced the same crash with the master branch with the following build (#8473).

20:01:29  Run /home/jenkins/workspace/Test_openjdk11_j9_sanity.functional_ppc64le_linux_jit_Personal/openjdkbinary/j2sdk-image/bin/java -version
20:01:29  openjdk version "11.0.6-internal" 2020-01-14
20:01:29  OpenJDK Runtime Environment (build 11.0.6-internal+0-adhoc.jenkins.BuildJDK11ppc64lelinuxjitPersonal)
20:01:29  Eclipse OpenJ9 VM (build master-bc8bb42d6, JRE 11 Linux ppc64le-64-Bit Compressed References 20200130_71 (JIT enabled, AOT enabled)
20:01:29  OpenJ9   - bc8bb42d6
20:01:29  OMR      - 6d5cab83a
20:01:29  JCL      - 75821523ffd based on jdk-11.0.6+10)

@mpirvu
Copy link
Contributor

mpirvu commented Jan 31, 2020

Yeah, I see StringPeepholeTest_0 failing on plinux in the nightlies as well.
I saw StringPeepholeTest_0 throwing an assert on xlinux

Assertion failed at /home/mpirvu/FullJava11/openj9-openjdk-jdk11/build/linux-x86_64-normal-server-release/vm/compiler/../compiler/x/codegen/J9TreeEvaluator.cpp:6744: (isDynamicAllocation || clazz)
VMState: 0x0005ff04
        Cannot have a null clazz while not doing dynamic array allocation

@mpirvu
Copy link
Contributor

mpirvu commented Jan 31, 2020

Since the errors seen in testing are not due to this PR, I am going to merge it.

@mpirvu mpirvu merged commit 68b3c49 into eclipse-openj9:master Jan 31, 2020
JIT as a Service automation moved this from In progress to Done Jan 31, 2020
@a7ehuo a7ehuo deleted the constantDynamics branch February 24, 2020 19:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
comp:jitserver Artifacts related to JIT-as-a-Service project
Projects
Development

Successfully merging this pull request may close these issues.

None yet

3 participants