JDK-8207013 : [Graal] vmTestbase/nsk/jvmti/PopFrame tests fail with Graal
  • Type: Bug
  • Component: hotspot
  • Sub-Component: jvmti
  • Affected Version: 11,12,15,16
  • Priority: P5
  • Status: Open
  • Resolution: Unresolved
  • Submitted: 2018-07-10
  • Updated: 2021-08-24
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Related Reports
Relates :  
Relates :  
Relates :  
Following popframe tests fail with Graal on macos and windows.

- vmTestbase/nsk/jvmti/PopFrame/popframe001/TestDescription.java
TEST FAILED: a tested frame has not been really popped

- vmTestbase/nsk/jvmti/PopFrame/popframe003/TestDescription.java
TEST FAILED: a tested frame has not been really popped

- vmTestbase/nsk/jvmti/PopFrame/popframe005/TestDescription.java
TEST FAILED: finally block was executed after popping
TEST FAILED: the lockObj[0]'s monitor became free too early
TEST FAILED: Lock acquired by a frame, different from the popped one,
	was released when the popped frame had been popped

Created separate issue for improving the tests - JDK-8215425

Looks like fixing issues in the test makes the change quite big - maybe it makes sense to fix it as a separate bug. Webrev to fix SuspendThread only: http://cr.openjdk.java.net/~amenkov/popframe_suspend/webrev.01/

Working on the fix discovered that the testhave some issues: - by default they don't produce much output (need to provide "-v" to produce more detailed output) - popframe004 needs to be revised - it test only 2 cases instead desired 3 cases

fixed popframe001 fails in 1-2% on linux-x64-debug without fix for JDK-8195635

Looks like issue with popframe003 (changes for the arguments of the popped frame's method, did not remain current argument values) is a different bug - filed JDK-8215196

The tests also need to be updated to ensure SuspendThread suspends at expected method). popframe004 also has the same problem (although it didn't fail)

This bug in most cases looks like a dup of JDK-8195635.

vmTestbase/nsk/jvmti/StopThread/stopthrd007/TestDescription.java failed with #> WARNING: switching log to verbose mode, #> because error is complained #> Debugee started Starting tested threads Finishing tested threads # ERROR: DebuggeeRunningThread: ThreadDeath lost The following stacktrace is for failure analysis. nsk.share.TestFailure: DebuggeeRunningThread: ThreadDeath lost at nsk.share.Log.logExceptionForFailureAnalysis(Log.java:428) at nsk.share.Log.complain(Log.java:399) at nsk.jvmti.StopThread.stopthrd007.runIt(stopthrd007.java:100) at nsk.jvmti.StopThread.stopthrd007.run(stopthrd007.java:43) at nsk.jvmti.StopThread.stopthrd007.main(stopthrd007.java:38) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:127) at java.base/java.lang.Thread.run(Thread.java:834) DebuggeeWaitingThread: got ThreadDeath DebuggeeSleepingThread: got ThreadDeath Debugee finished

popframe003 fails on windows-x64 with: TEST FAILED: changes for the arguments of the popped frame's method, did not remain current argument values: i=0 l=0 d=0.0 c='\u0000' and on linux-x64: TEST: failed to pop frame TEST FAILED: the function PopFrame() returned the error 13: JVMTI_ERROR_THREAD_NOT_SUSPENDED For more info about this error see the JVMTI spec.