RFR: 8377665: JFR: Symbol table not setup for early class unloading
Stefan Johansson
sjohanss at openjdk.org
Thu Feb 12 08:29:35 UTC 2026
On Wed, 11 Feb 2026 12:31:24 GMT, Joel Sikström <jsikstro at openjdk.org> wrote:
> Hello,
>
> 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. A simple fix for this is to move the creation of the symbol table to the early setup of JFR, which allows us to successfully call `JfrCheckpointManager::on_unloading_classes()`.
>
> Testing:
> * Crash reproducer no longer crashes
> * Running through Oracle's tier1-4
src/hotspot/share/jfr/recorder/jfrRecorder.cpp line 111:
> 109: return false;
> 110: }
> 111:
Could/should this be moved in under `is_started_on_commandline()` like for the check point manager above?
>From what I understand, the only time we can get to the problematic case with an uninitialized table is when started on the command-line and it would then make sense to only do this initialization for this case. Or am I missing something?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/29672#discussion_r2797415457
More information about the hotspot-jfr-dev
mailing list