RFR: 8302158: PPC: test/jdk/jdk/internal/vm/Continuation/Fuzz.java: AssertionError: res: false shouldPin: false

Richard Reingruber rrich at openjdk.org
Tue Feb 14 14:22:32 UTC 2023


This fixes the linked issue by trimming the caller of a frame to be deoptimized back to its `unextended_sp` iff it is compiled. The creation of the section `dead after deoptimization` shown in the attachment [yield_after_deopt_failure.log](https://bugs.openjdk.org/secure/attachment/102602/yield_after_deopt_failure.log) is prevented by this.

A new mode is added to the test BasicExt.java where all frames are deoptimized after a yield operation. The issue can be deterministically reproduced with the new mode. It's not worth to execute all test cases with the new mode though. Instead `ContinuationCompiledFramesWithStackArgs_3c4` is always executed a 2nd time in this mode.

Before this BasicExt.java was refactored for better argument processing and representation of the test modes.
Also the try-catch-clause in the main method had to be changed to rethrow the caught exception because without this the test would have succeeded.

Testing: jtreg tests tier 1-4 on standard platforms and also on ppc64le.

-------------

Commit messages:
 - Trimm compiled caller of deoptee to unextended sp
 - Deoptimize after yield
 - BasicExt.java test: use enums for parameters
 - BasicExt.java test: rethrow caught exception to indicate failure

Changes: https://git.openjdk.org/jdk/pull/12557/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=12557&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8302158
  Stats: 203 lines in 3 files changed: 148 ins; 13 del; 42 mod
  Patch: https://git.openjdk.org/jdk/pull/12557.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/12557/head:pull/12557

PR: https://git.openjdk.org/jdk/pull/12557


More information about the core-libs-dev mailing list