We observe a crash when running a major GC very early, which unloads classes, calling into JFR which is not properly set up for class unloading this early. This can be provoked by running with a particularly small heap, which forces a major collection early on.
$ mainline-fast/jdk/bin/java -XX:StartFlightRecording -XX:+UseZGC -Xmx10M --version
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (src/hotspot/share/jfr/support/jfrSymbolTable.inline.hpp:53), pid=1726188, tid=1726194
# assert(table != nullptr) failed: invariant
#
# JRE version: Java(TM) SE Runtime Environment (27.0) (fastdebug build 27-internal-opc.open)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 27-internal-opc.open, mixed mode, tiered, compressed class ptrs, z gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x1206e3c] JfrTypeSet::serialize(JfrCheckpointWriter*, JfrCheckpointWriter*, bool, bool)+0x209c
#
[1] 1726188 IOT instruction (core dumped) mainline-fast/jdk/bin/java -XX:StartFlightRecording
$ mainline-fast/jdk/bin/java -XX:StartFlightRecording -XX:+UseZGC -Xmx10M --version
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (src/hotspot/share/jfr/support/jfrSymbolTable.inline.hpp:53), pid=1726188, tid=1726194
# assert(table != nullptr) failed: invariant
#
# JRE version: Java(TM) SE Runtime Environment (27.0) (fastdebug build 27-internal-opc.open)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 27-internal-opc.open, mixed mode, tiered, compressed class ptrs, z gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x1206e3c] JfrTypeSet::serialize(JfrCheckpointWriter*, JfrCheckpointWriter*, bool, bool)+0x209c
#
[1] 1726188 IOT instruction (core dumped) mainline-fast/jdk/bin/java -XX:StartFlightRecording
- caused by
-
JDK-8365400 Enhance JFR to emit file and module metadata for class loading
-
- Resolved
-
- links to
-
Review(master)
openjdk/jdk/29672