-
Bug
-
Resolution: Fixed
-
P3
-
8, 11, 17, 18, 19
-
b23
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8311638 | 17.0.9-oracle | Kevin Walls | P3 | Resolved | Fixed | b02 |
JDK-8288331 | 17.0.5 | Jaroslav Bachorík | P3 | Resolved | Fixed | b01 |
JDK-8311790 | 11.0.21-oracle | Kevin Walls | P3 | Resolved | Fixed | b02 |
JDK-8288751 | 11.0.17 | Jaroslav Bachorík | P3 | Resolved | Fixed | b01 |
JDK-8290014 | openjdk8u352 | Jaroslav Bachorík | P3 | Resolved | Fixed | master |
Here is the excerpt from the crash log:
```
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (codeCache.cpp:639), pid=7, tid=194
# guarantee(result == NULL || !result->is_zombie() || result->is_locked_by_vm() || VMError::is_error_reported()) failed: unsafe access to zombie method
#
# JRE version: OpenJDK Runtime Environment Temurin-17.0.2+8 (17.0.2+8) (build 17.0.2+8)
# Java VM: OpenJDK 64-Bit Server VM Temurin-17.0.2+8 (17.0.2+8, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, parallel gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x5b0a58] CodeCache::find_blob(void*)+0xb8
#
# Core dump will be written. Default location: /usr/local/app/core
#
# JFR recording file will be written. Location: /usr/local/app/hs_err_pid7.jfr
#
# If you would like to submit a bug report, please visit:
# https://github.com/adoptium/adoptium-support/issues
```
The full log is attached.
The root cause is AsyncGetCallTrace calling `CodeCache::find_blob()` which contains a guarantee which will fail if we happen to hit a zombie method. This is particularly unpleasant as that guarantee will take down the JVM with crash.
This crash happens when the last frame is marked as zombie but the associated resources haven't been cleaned by the sweeper yet.
- backported by
-
JDK-8288331 AsyncGetCallTrace may crash JVM on guarantee
- Resolved
-
JDK-8288751 AsyncGetCallTrace may crash JVM on guarantee
- Resolved
-
JDK-8290014 AsyncGetCallTrace may crash JVM on guarantee
- Resolved
-
JDK-8311638 AsyncGetCallTrace may crash JVM on guarantee
- Resolved
-
JDK-8311790 AsyncGetCallTrace may crash JVM on guarantee
- Resolved
- relates to
-
JDK-8290025 Remove the Sweeper
- Resolved
-
JDK-8297864 Dead code elimination
- Resolved
-
JDK-8288710 Reduce the likelihood of AsyncGetCallTrace crashing due to sweeped nmethod data
- Closed
- links to
-
Commit openjdk/jdk8u-dev/6e8292f1
-
Commit openjdk/jdk11u-dev/684f12e7
-
Commit openjdk/jdk17u-dev/19639855
-
Commit openjdk/jdk/93c88690
-
Review openjdk/jdk8u-dev/73
-
Review openjdk/jdk11u-dev/1148
-
Review openjdk/jdk17u-dev/402
-
Review openjdk/jdk/8061
-
Review openjdk/jdk/8549