RFR: 8335553: [Graal] Compiler thread calls into jdk.internal.vm.VMSupport.decodeAndThrowThrowable and crashes in OOM situation [v2]

Doug Simon dnsimon at openjdk.org
Tue Jul 9 13:46:46 UTC 2024


> This PR addresses intermittent failures in jtreg GC stress tests. The failures occur under these conditions:
> 1. Using a libgraal build with assertions enabled as the top tier JIT compiler. Such a libgraal build will cause a VM exit if an assertion or GraalError occurs in a compiler thread (as this catches more errors in testing).
> 2. A libgraal compiler thread makes a call into the VM (via `CompilerToVM`) to a routine that performs a HotSpot heap allocation that fails.
> 3. The resulting OOME is wrapped in a GraalError, causing the VM to exit as described in 1.
> 
> An OOME thrown in these specific conditions should not exit the VM as it not related to an OOME in the app or test. Instead, the failure should be treated as a bailout and the libgraal compiler should continue.
> 
> To accomplish this, libgraal needs to be able to distinguish a GraalError caused by an OOME. This PR modifies the exception translation code to make this possible.

Doug Simon has updated the pull request incrementally with one additional commit since the last revision:

  fixed TestTranslatedException

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/20083/files
  - new: https://git.openjdk.org/jdk/pull/20083/files/ff544be3..aa32491c

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=20083&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=20083&range=00-01

  Stats: 19 lines in 2 files changed: 12 ins; 0 del; 7 mod
  Patch: https://git.openjdk.org/jdk/pull/20083.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/20083/head:pull/20083

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


More information about the core-libs-dev mailing list