Skip to content

Correct GetThreadState return value for Object.wait#21547

Merged
babsingh merged 1 commit intoeclipse-openj9:masterfrom
theresa-m:fix_getthreadstate
Apr 3, 2025
Merged

Correct GetThreadState return value for Object.wait#21547
babsingh merged 1 commit intoeclipse-openj9:masterfrom
theresa-m:fix_getthreadstate

Conversation

@theresa-m
Copy link
Copy Markdown
Contributor

@theresa-m theresa-m commented Apr 1, 2025

With this change #21408 passes and #21412 progresses past one failure.

Signed-off-by: Theresa Mammarella <Theresa.T.Mammarella@ibm.com>
break;
case JVMTI_VTHREAD_STATE_PINNED:
case JVMTI_VTHREAD_STATE_PARKED:
rc = JVMTI_JAVA_LANG_THREAD_STATE_WAITING | JVMTI_THREAD_STATE_PARKED;
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

JVMTI_JAVA_LANG_THREAD_STATE_WAITING was only introuced in JDK24. Appropriate ifdefs will need to be added. Otherwise, older JDKs will behave incorrectly.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Are you thinking of JVMTI_VTHREAD_STATE_WAIT? It looks like JVMTI_JAVA_LANG_THREAD_STATE_WAITING has been in the code base for several years.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

You are right. I read too quickly. i will launch the PR builds

@babsingh
Copy link
Copy Markdown
Contributor

babsingh commented Apr 2, 2025

jenkins test sanity.functional amac jdk24

@babsingh
Copy link
Copy Markdown
Contributor

babsingh commented Apr 2, 2025

jenkins test extended.openjdk amac jdk21,jdk24

@babsingh
Copy link
Copy Markdown
Contributor

babsingh commented Apr 2, 2025

@theresa-m I noticed a new failure that has been documented before. Could you do an initial triage to see if it's related to your changes? If it's not, please create a new issue to track it. Once that's done, I'll go ahead and merge this PR.

15:36:17  Exception in thread "EnteringVT0" java.lang.InternalError: SIGBUS
15:36:17  	at ObjectMonitorUsage$EnteringTask.run(ObjectMonitorUsage.java:363)
15:36:17  	at java.base/java.lang.VirtualThread.run(VirtualThread.java:472)
15:36:17  Unhandled exception
15:36:17  Type=Segmentation error vmState=0x00000000
15:36:17  J9Generic_Signal_Number=00000018 Signal_Number=0000000b Error_Value=00000000 Signal_Code=00000002
15:36:17  Handler1=00000001010DB13C Handler2=0000000100E122DC InaccessibleAddress=0000000000000000
15:36:17  x0=0000000122845DB0 x1=0000000122845DB0 x2=0000000312EF2190 x3=0000000125085218
15:36:17  x4=0000000312EF2820 x5=0000000312EF27C0 x6=0000000312EF27B8 x7=0000000312EF27B0
15:36:17  x8=0000000000000000 x9=420131EEA056000D x10=000000014301C420 x11=0000000312EF27A8
15:36:17  x12=0000000000000001 x13=0000000000000020 x14=0000000312EF27D8 x15=0000000102B647E8
15:36:17  x16=000000016FD829E0 x17=0000000000000001 x18=000000010121A5B4 x19=0000000125085100
15:36:17  x20=000000014301CAB0 x21=0000000102B647E8 x22=000000013835AB00 x23=0000000000000000
15:36:17  x24=0000000000000011 x25=00000001482FA4D0 x26=000000010122650C x27=0000000000004010
15:36:17  x28=00000001482F9D00 x29(FP)=0000000000000000 x30(LR)=0000000159B3C26C x31(SP)=000000016FD82840
15:36:17  PC=0000000000000000 SP=000000016FD82840
15:36:17  v0=000000016fd82cd0 (f: 1876438272.000000, d: 3.049079e-314)
15:36:17  v1=0000000000000000 (f: 0.000000, d: 0.000000e+00)
15:36:17  v2=0000000000000000 (f: 0.000000, d: 0.000000e+00)
15:36:17  v3=0000000000000000 (f: 0.000000, d: 0.000000e+00)
15:36:17  v4=0000000000000000 (f: 0.000000, d: 0.000000e+00)
15:36:17  v5=000060000371d340 (f: 57791296.000000, d: 5.215020e-310)
15:36:17  v6=0000000100eabea7 (f: 15384231.000000, d: 2.129597e-314)
15:36:17  v7=000000016fd82bc0 (f: 1876438016.000000, d: 3.049079e-314)
15:36:17  v8=0000000000000000 (f: 0.000000, d: 0.000000e+00)
15:36:17  v9=00000001308098a8 (f: 813734080.000000, d: 2.524034e-314)
15:36:17  v10=0000000000000000 (f: 0.000000, d: 0.000000e+00)
15:36:17  v11=0000000142060630 (f: 1107691008.000000, d: 2.669268e-314)
15:36:17  v12=0000000101220dd8 (f: 19008984.000000, d: 2.131387e-314)
15:36:17  v13=0000000000004010 (f: 16400.000000, d: 8.102677e-320)
15:36:17  v14=0000000000000003 (f: 3.000000, d: 1.482197e-323)
15:36:17  v15=000000010121a5b4 (f: 18982324.000000, d: 2.131374e-314)
15:36:17  v16=000000016fd82ca0 (f: 1876438144.000000, d: 3.049079e-314)
15:36:17  v17=0000000000000502 (f: 1282.000000, d: 6.333922e-321)
15:36:17  v18=000000016fd82c50 (f: 1876438144.000000, d: 3.049079e-314)
15:36:17  v19=00000001782ad900 (f: 2016073984.000000, d: 3.118069e-314)
15:36:17  v20=00006000021161e0 (f: 34693600.000000, d: 5.215019e-310)
15:36:17  v21=000060000371d460 (f: 57791584.000000, d: 5.215020e-310)
15:36:17  v22=0000000100d49ed8 (f: 13934296.000000, d: 2.128880e-314)
15:36:17  v23=000060000371d478 (f: 57791608.000000, d: 5.215020e-310)
15:36:17  v24=000000016fd82cb0 (f: 1876438144.000000, d: 3.049079e-314)
15:36:17  v25=420131eea056000d (f: 2689990656.000000, d: 9.231521e+09)
15:36:17  v26=0000000100d49ed8 (f: 13934296.000000, d: 2.128880e-314)
15:36:17  v27=000000014206ad58 (f: 1107733888.000000, d: 2.669289e-314)
15:36:17  v28=000000014205fb00 (f: 1107688192.000000, d: 2.669266e-314)
15:36:17  v29=0000000122914b28 (f: 579947328.000000, d: 2.408528e-314)
15:36:17  v30=0000000101227a88 (f: 19036808.000000, d: 2.131401e-314)
15:36:17  v31=000000016fd82da0 (f: 1876438400.000000, d: 3.049080e-314)
15:36:17  Target=2_90_20250403_75 (Mac OS X 15.3.1)
15:36:17  CPU=aarch64 (8 logical CPUs) (0x400000000 RAM)
15:36:17  ----------- Stack Backtrace -----------
15:36:17  ---------------------------------------
15:36:17  JVMDUMP039I Processing dump event "gpf", detail "" at 2025/04/03 06:35:41 - please wait.
15:36:17  JVMDUMP032I JVM requested System dump using '/Users/jenkins/workspace/Test_openjdk24_j9_extended.openjdk_aarch64_mac_Personal/aqa-tests/TKG/output_17436224883574/serviceability_jvmti_j9_1/work/scratch/1/core.20250403.063541.64145.0001.dmp' in response to an event
15:36:17  JVMDUMP010I System dump written to /Users/jenkins/workspace/Test_openjdk24_j9_extended.openjdk_aarch64_mac_Personal/aqa-tests/TKG/output_17436224883574/serviceability_jvmti_j9_1/work/scratch/1/core.20250403.063541.64145.0001.dmp
15:36:17  JVMDUMP032I JVM requested Java dump using '/Users/jenkins/workspace/Test_openjdk24_j9_extended.openjdk_aarch64_mac_Personal/aqa-tests/TKG/output_17436224883574/serviceability_jvmti_j9_1/work/scratch/1/javacore.20250403.063541.64145.0002.txt' in response to an event
15:36:17  JVMDUMP010I Java dump written to /Users/jenkins/workspace/Test_openjdk24_j9_extended.openjdk_aarch64_mac_Personal/aqa-tests/TKG/output_17436224883574/serviceability_jvmti_j9_1/work/scratch/1/javacore.20250403.063541.64145.0002.txt
15:36:17  JVMDUMP032I JVM requested Snap dump using '/Users/jenkins/workspace/Test_openjdk24_j9_extended.openjdk_aarch64_mac_Personal/aqa-tests/TKG/output_17436224883574/serviceability_jvmti_j9_1/work/scratch/1/Snap.20250403.063541.64145.0003.trc' in response to an event
15:36:17  JVMDUMP010I Snap dump written to /Users/jenkins/workspace/Test_openjdk24_j9_extended.openjdk_aarch64_mac_Personal/aqa-tests/TKG/output_17436224883574/serviceability_jvmti_j9_1/work/scratch/1/Snap.20250403.063541.64145.0003.trc
15:36:17  JVMDUMP032I JVM requested JIT dump using '/Users/jenkins/workspace/Test_openjdk24_j9_extended.openjdk_aarch64_mac_Personal/aqa-tests/TKG/output_17436224883574/serviceability_jvmti_j9_1/work/scratch/1/jitdump.20250403.063541.64145.0004.dmp' in response to an event
15:36:17  JVMDUMP051I JIT dump occurred in 'ForkJoinPool-1-worker-7' thread 0x000000014205FB00
15:36:17  JVMDUMP053I JIT dump is recompiling ObjectMonitorUsage$EnteringTask.run()V
15:36:17  JVMDUMP053I JIT dump is recompiling java/lang/Thread.runWith(Ljava/lang/Object;Ljava/lang/Runnable;)V
15:36:17  JVMDUMP010I JIT dump written to /Users/jenkins/workspace/Test_openjdk24_j9_extended.openjdk_aarch64_mac_Personal/aqa-tests/TKG/output_17436224883574/serviceability_jvmti_j9_1/work/scratch/1/jitdump.20250403.063541.64145.0004.dmp
15:36:17  JVMDUMP013I Processed dump event "gpf", detail "".

@theresa-m
Copy link
Copy Markdown
Contributor Author

It doesn't look related to me, the failing test serviceability/jvmti/ObjectMonitorUsage/ObjectMonitorUsage.java does not call any of the methods that use getVirtualThreadState (jvmtiGetThreadState, jvmtiGetThreadListStackTracesExtended, jvmtiGetThreadListStackTraces).

From the javacore the test looks to be working on Thread.join when the failure occurs:

3XMTHREADINFO      "MainThread" J9VMThread:0x0000000140840F00, omrthread_t:0x000000014083FC50, java/lang/Thread:0x00000001228408B0, state:P, rawStateValue:0x80, prio=5
3XMJAVALTHREAD            (java/lang/Thread getId:0x1B, isDaemon:false)
3XMJAVALTHRCCL            jdk/internal/loader/ClassLoaders$AppClassLoader(0x0000000102BCB848)
3XMTHREADINFO1            (native thread ID:0x3A384AA, native priority:0x5, native policy:UNKNOWN, vmstate:P, vm thread flags:0x00020000)
3XMTHREADINFO2            (native stack address range from:0x0000000312D34000, to:0x0000000312D77000, size:0x43000)
3XMCPUTIME               CPU usage total: 0.073680000 secs, current category="Application"
3XMTHREADBLOCK     Parked on: java/util/concurrent/CountDownLatch$Sync@0x00000001228FD6B8 Owned by: <unknown>
3XMHEAPALLOC             Heap bytes allocated since last GC cycle=473656 (0x73A38)
3XMTHREADINFO3           Java callstack:                
4XESTACKTRACE                at jdk/internal/misc/Unsafe.park(Native Method)
4XESTACKTRACE                at java/util/concurrent/locks/LockSupport.park(LockSupport.java:223)
4XESTACKTRACE                at java/util/concurrent/locks/AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:789)
4XESTACKTRACE                at java/util/concurrent/locks/AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1138)
4XESTACKTRACE                at java/util/concurrent/CountDownLatch.await(CountDownLatch.java:230)
4XESTACKTRACE                at java/lang/VirtualThread.joinNanos(VirtualThread.java:1004)
4XESTACKTRACE                at java/lang/Thread.join(Thread.java:1878)
4XESTACKTRACE                at java/lang/Thread.join(Thread.java:1971)
4XESTACKTRACE                at ObjectMonitorUsage.joinThreads(ObjectMonitorUsage.java:111)
4XESTACKTRACE                at ObjectMonitorUsage.test1(ObjectMonitorUsage.java:199)
4XESTACKTRACE                at ObjectMonitorUsage.test(ObjectMonitorUsage.java:321)
4XESTACKTRACE                at ObjectMonitorUsage.main(ObjectMonitorUsage.java:331)
4XESTACKTRACE                at java/lang/invoke/LambdaForm$DMH/0x0000000023817e20.invokeStatic(LambdaForm$DMH)
4XESTACKTRACE                at java/lang/invoke/LambdaForm$MH/0x000000004107c220.invoke(LambdaForm$MH)
4XESTACKTRACE                at java/lang/invoke/LambdaForm$MH/0x0000000043011c20.invokeExact_MT(LambdaForm$MH)
4XESTACKTRACE                at jdk/internal/reflect/DirectMethodHandleAccessor.invokeImpl(DirectMethodHandleAccessor.java:155)
4XESTACKTRACE                at jdk/internal/reflect/DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
4XESTACKTRACE                at java/lang/reflect/Method.invoke(Method.java:571)
4XESTACKTRACE                at com/sun/javatest/regtest/agent/MainWrapper$MainTask.run(MainWrapper.java:138)
4XESTACKTRACE                at java/lang/Thread.runWith(Thread.java:1471)
4XESTACKTRACE                at java/lang/Thread.run(Thread.java:1458)
3XMTHREADINFO3           No native callstack available for this thread
3XMTHREADINFO4           Type: Platform

I'll make a new issue for this.

@babsingh babsingh merged commit 75c3ef5 into eclipse-openj9:master Apr 3, 2025
6 of 8 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.

2 participants