-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
P4
-
None
-
Affects Version/s: 27
-
Component/s: hotspot
As per docs, CollectedHeap::post_initialize is for doing inits that should be done before general allocations are accepted. Currently, serviceability layer initialized there via the call to CollectedHeap::initialize_serviceability. This bug shows that after CollectedHeap::post_initialize returns, the rest of the serviceability layer had not been fully initialized yet. But GC code is free to assume general allocation path works at that point! So if that allocation path reports anything to the serviceability layer, it could encounter not yet fully initialized serviceability support and fail.
This readily manifests in Epsilon stress tests.
---- Original report below ----
Test: gc/epsilon/TestInitAllocs.java
command: main -Xmx256m -XX:+UnlockExperimentalVMOptions -XX:+UseEpsilonGC -XX:-UseTLAB -XX:-UseCompressedOops -XX:EpsilonMinHeapExpand=1024 -XX:EpsilonUpdateCountersStep=1 -XX:EpsilonPrintHeapSteps=1000000 gc.epsilon.TestInitAllocs
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x0000ffffa1e2e4f8, pid=1771560, tid=1771567
#
# JRE version: (27.0+5) (fastdebug build )
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 27-ea+5-400, mixed mode, sharing, tiered, compact obj headers, epsilon gc, linux-aarch64)
# Problematic frame:
# V [libjvm.so+0x142e4f8] MemoryPool::record_peak_memory_usage()+0x18
#
# Core dump will be written. Default location: Determined by the following: "/opt/core.sh %p" (alternatively, falling back to /opt/mach5/mesos/work_dir/slaves/da1065b5-7b94-4f0d-85e9-a3a252b9a32e-S35310/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/8d8921f0-665d-4ef8-a795-f8ee44886995/runs/9919dde9-bad0-41d0-ba63-dbad943e850d/testoutput/test-support/jtreg_open_test_hotspot_jtreg_tier1_gc/scratch/3/core.1771560)
#
#
--------------- S U M M A R Y ------------
Command Line: -Dtest.vm.opts=-XX:MaxRAMPercentage=6.25 -Dtest.boot.jdk=/opt/mach5/mesos/work_dir/jib-master/install/jdk/25/37/bundles/linux-aarch64/jdk-25_linux-aarch64_bin.tar.gz/jdk-25 -Djava.io.tmpdir=/opt/mach5/mesos/work_dir/slaves/da1065b5-7b94-4f0d-85e9-a3a252b9a32e-S35310/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/8d8921f0-665d-4ef8-a795-f8ee44886995/runs/9919dde9-bad0-41d0-ba63-dbad943e850d/testoutput/test-support/jtreg_open_test_hotspot_jtreg_tier1_gc/tmp -Dtest.tool.vm.opts=-J-XX:MaxRAMPercentage=6.25 -J-Dtest.boot.jdk=/opt/mach5/mesos/work_dir/jib-master/install/jdk/25/37/bundles/linux-aarch64/jdk-25_linux-aarch64_bin.tar.gz/jdk-25 -J-Djava.io.tmpdir=/opt/mach5/mesos/work_dir/slaves/da1065b5-7b94-4f0d-85e9-a3a252b9a32e-S35310/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/8d8921f0-665d-4ef8-a795-f8ee44886995/runs/9919dde9-bad0-41d0-ba63-dbad943e850d/testoutput/test-support/jtreg_open_test_hotspot_jtreg_tier1_gc/tmp -Dtest.compiler.opts= -Dtest.java.opts=-XX:+UseCompactObjectHeaders -Dtest.jdk=/opt/mach5/mesos/work_dir/jib-master/install/jdk-27+5-400/linux-aarch64-debug.jdk/jdk-27/fastdebug -Dcompile.jdk=/opt/mach5/mesos/work_dir/jib-master/install/jdk-27+5-400/linux-aarch64-debug.jdk/jdk-27/fastdebug -Dtest.timeout.factor=4.0 -Dtest.nativepath=/opt/mach5/mesos/work_dir/jib-master/install/jdk-27+5-400/linux-aarch64-debug.test/hotspot/jtreg/native -Dtest.root=/opt/mach5/mesos/work_dir/jib-master/install/jdk-27+5-400/src.full/open/test/hotspot/jtreg -Dtest.name=gc/epsilon/TestInitAllocs.java -Dtest.verbose=Verbose[p=BRIEF,f=FULL,e=FULL,t=true,m=false] -Dtest.file=/opt/mach5/mesos/work_dir/jib-master/install/jdk-27+5-400/src.full/open/test/hotspot/jtreg/gc/epsilon/TestInitAllocs.java -Dtest.main.class=gc.epsilon.TestInitAllocs -Dtest.src=/opt/mach5/mesos/work_dir/jib-master/install/jdk-27+5-400/src.full/open/test/hotspot/jtreg/gc/epsilon -Dtest.src.path=/opt/mach5/mesos/work_dir/jib-master/install/jdk-27+5-400/src.full/open/test/hotspot/jtreg/gc/epsilon -Dtest.classes=/opt/mach5/mesos/work_dir/slaves/da1065b5-7b94-4f0d-85e9-a3a252b9a32e-S35310/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/8d8921f0-665d-4ef8-a795-f8ee44886995/runs/9919dde9-bad0-41d0-ba63-dbad943e850d/testoutput/test-support/jtreg_open_test_hotspot_jtreg_tier1_gc/classes/2/gc/epsilon/TestInitAllocs.d -Dtest.class.path=/opt/mach5/mesos/work_dir/slaves/da1065b5-7b94-4f0d-85e9-a3a252b9a32e-S35310/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/8d8921f0-665d-4ef8-a795-f8ee44886995/runs/9919dde9-bad0-41d0-ba63-dbad943e850d/testoutput/test-support/jtreg_open_test_hotspot_jtreg_tier1_gc/classes/2/gc/epsilon/TestInitAllocs.d -Dtest.class.path.prefix=/opt/mach5/mesos/work_dir/slaves/da1065b5-7b94-4f0d-85e9-a3a252b9a32e-S35310/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/8d8921f0-665d-4ef8-a795-f8ee44886995/runs/9919dde9-bad0-41d0-ba63-dbad943e850d/testoutput/test-support/jtreg_open_test_hotspot_jtreg_tier1_gc/classes/2/gc/epsilon/TestInitAllocs.d:/opt/mach5/mesos/work_dir/jib-master/install/jdk-27+5-400/src.full/open/test/hotspot/jtreg/gc/epsilon -XX:MaxRAMPercentage=6.25 -Dtest.boot.jdk=/opt/mach5/mesos/work_dir/jib-master/install/jdk/25/37/bundles/linux-aarch64/jdk-25_linux-aarch64_bin.tar.gz/jdk-25 -Djava.io.tmpdir=/opt/mach5/mesos/work_dir/slaves/da1065b5-7b94-4f0d-85e9-a3a252b9a32e-S35310/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/8d8921f0-665d-4ef8-a795-f8ee44886995/runs/9919dde9-bad0-41d0-ba63-dbad943e850d/testoutput/test-support/jtreg_open_test_hotspot_jtreg_tier1_gc/tmp -XX:+UseCompactObjectHeaders -Djava.library.path=/opt/mach5/mesos/work_dir/jib-master/install/jdk-27+5-400/linux-aarch64-debug.test/hotspot/jtreg/native -Xmx256m -XX:+UnlockExperimentalVMOptions -XX:+UseEpsilonGC -XX:-UseTLAB -XX:-UseCompressedOops -XX:EpsilonMinHeapExpand=1024 -XX:EpsilonUpdateCountersStep=1 -XX:EpsilonPrintHeapSteps=1000000 com.sun.javatest.regtest.agent.MainWrapper /opt/mach5/mesos/work_dir/slaves/da1065b5-7b94-4f0d-85e9-a3a252b9a32e-S35310/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/8d8921f0-665d-4ef8-a795-f8ee44886995/runs/9919dde9-bad0-41d0-ba63-dbad943e850d/testoutput/test-support/jtreg_open_test_hotspot_jtreg_tier1_gc/gc/epsilon/TestInitAllocs.d/main.4.jta
Host: AArch64, 8 cores, 30G, Oracle Linux Server release 9.6
Time: Wed Jan 14 06:54:19 2026 UTC elapsed time: 0.060805 seconds (0d 0h 0m 0s)
--------------- T H R E A D ---------------
Current thread (0x0000ffff9c061900): JavaThread "Unknown thread" [_thread_in_vm, id=1771567, stack(0x0000ffffa021a000,0x0000ffffa0418000) (2040K)]
Stack: [0x0000ffffa021a000,0x0000ffffa0418000], sp=0x0000ffffa0416230, free space=2032k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x142e4f8] MemoryPool::record_peak_memory_usage()+0x18 (memoryPool.cpp:159)
V [libjvm.so+0x1432290] MemoryService::track_memory_usage()+0x44 (memoryService.cpp:149)
V [libjvm.so+0xbb3b18] EpsilonMonitoringSupport::update_counters()+0x28 (epsilonMonitoringSupport.cpp:103)
V [libjvm.so+0xbb0bd4] EpsilonHeap::allocate_work(unsigned long) [clone .part.0]+0x3b4 (epsilonHeap.cpp:161)
V [libjvm.so+0x13fc7f0] MemAllocator::mem_allocate(MemAllocator::Allocation&) const+0xe0 (memAllocator.cpp:236)
V [libjvm.so+0x13fc8f8] MemAllocator::allocate() const+0x88 (memAllocator.cpp:353)
V [libjvm.so+0x639be0] AOTStreamedHeapLoader::allocate_object(oopDesc*, markWord, unsigned long, JavaThread*)+0x160 (collectedHeap.inline.hpp:41)
V [libjvm.so+0x63bad0] AOTStreamedHeapLoader::IterativeObjectLoader::materialize_range(int, int, JavaThread*)+0x870 (aotStreamedHeapLoader.cpp:616)
V [libjvm.so+0x63c044] AOTStreamedHeapLoader::IterativeObjectLoader::materialize_next_batch(JavaThread*)+0x224 (aotStreamedHeapLoader.cpp:711)
V [libjvm.so+0x63ca88] AOTStreamedHeapLoader::materialize_early(JavaThread*)+0xbc (aotStreamedHeapLoader.cpp:751)
V [libjvm.so+0x63d2dc] AOTStreamedHeapLoader::materialize_objects()+0x78 (aotStreamedHeapLoader.cpp:858)
V [libjvm.so+0x65a50c] AOTThread::aot_thread_entry(JavaThread*, JavaThread*)+0xc (aotThread.cpp:111)
V [libjvm.so+0xf07568] JavaThread::thread_main_inner()+0x108 (javaThread.cpp:776)
V [libjvm.so+0x1891f8c] Thread::call_run()+0xac (thread.cpp:242)
V [libjvm.so+0x155ff3c] thread_native_entry(Thread*)+0x11c (os_linux.cpp:860)
C [libc.so.6+0x80b50] start_thread+0x300
siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: 0x0000000000000000
This readily manifests in Epsilon stress tests.
---- Original report below ----
Test: gc/epsilon/TestInitAllocs.java
command: main -Xmx256m -XX:+UnlockExperimentalVMOptions -XX:+UseEpsilonGC -XX:-UseTLAB -XX:-UseCompressedOops -XX:EpsilonMinHeapExpand=1024 -XX:EpsilonUpdateCountersStep=1 -XX:EpsilonPrintHeapSteps=1000000 gc.epsilon.TestInitAllocs
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x0000ffffa1e2e4f8, pid=1771560, tid=1771567
#
# JRE version: (27.0+5) (fastdebug build )
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 27-ea+5-400, mixed mode, sharing, tiered, compact obj headers, epsilon gc, linux-aarch64)
# Problematic frame:
# V [libjvm.so+0x142e4f8] MemoryPool::record_peak_memory_usage()+0x18
#
# Core dump will be written. Default location: Determined by the following: "/opt/core.sh %p" (alternatively, falling back to /opt/mach5/mesos/work_dir/slaves/da1065b5-7b94-4f0d-85e9-a3a252b9a32e-S35310/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/8d8921f0-665d-4ef8-a795-f8ee44886995/runs/9919dde9-bad0-41d0-ba63-dbad943e850d/testoutput/test-support/jtreg_open_test_hotspot_jtreg_tier1_gc/scratch/3/core.1771560)
#
#
--------------- S U M M A R Y ------------
Command Line: -Dtest.vm.opts=-XX:MaxRAMPercentage=6.25 -Dtest.boot.jdk=/opt/mach5/mesos/work_dir/jib-master/install/jdk/25/37/bundles/linux-aarch64/jdk-25_linux-aarch64_bin.tar.gz/jdk-25 -Djava.io.tmpdir=/opt/mach5/mesos/work_dir/slaves/da1065b5-7b94-4f0d-85e9-a3a252b9a32e-S35310/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/8d8921f0-665d-4ef8-a795-f8ee44886995/runs/9919dde9-bad0-41d0-ba63-dbad943e850d/testoutput/test-support/jtreg_open_test_hotspot_jtreg_tier1_gc/tmp -Dtest.tool.vm.opts=-J-XX:MaxRAMPercentage=6.25 -J-Dtest.boot.jdk=/opt/mach5/mesos/work_dir/jib-master/install/jdk/25/37/bundles/linux-aarch64/jdk-25_linux-aarch64_bin.tar.gz/jdk-25 -J-Djava.io.tmpdir=/opt/mach5/mesos/work_dir/slaves/da1065b5-7b94-4f0d-85e9-a3a252b9a32e-S35310/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/8d8921f0-665d-4ef8-a795-f8ee44886995/runs/9919dde9-bad0-41d0-ba63-dbad943e850d/testoutput/test-support/jtreg_open_test_hotspot_jtreg_tier1_gc/tmp -Dtest.compiler.opts= -Dtest.java.opts=-XX:+UseCompactObjectHeaders -Dtest.jdk=/opt/mach5/mesos/work_dir/jib-master/install/jdk-27+5-400/linux-aarch64-debug.jdk/jdk-27/fastdebug -Dcompile.jdk=/opt/mach5/mesos/work_dir/jib-master/install/jdk-27+5-400/linux-aarch64-debug.jdk/jdk-27/fastdebug -Dtest.timeout.factor=4.0 -Dtest.nativepath=/opt/mach5/mesos/work_dir/jib-master/install/jdk-27+5-400/linux-aarch64-debug.test/hotspot/jtreg/native -Dtest.root=/opt/mach5/mesos/work_dir/jib-master/install/jdk-27+5-400/src.full/open/test/hotspot/jtreg -Dtest.name=gc/epsilon/TestInitAllocs.java -Dtest.verbose=Verbose[p=BRIEF,f=FULL,e=FULL,t=true,m=false] -Dtest.file=/opt/mach5/mesos/work_dir/jib-master/install/jdk-27+5-400/src.full/open/test/hotspot/jtreg/gc/epsilon/TestInitAllocs.java -Dtest.main.class=gc.epsilon.TestInitAllocs -Dtest.src=/opt/mach5/mesos/work_dir/jib-master/install/jdk-27+5-400/src.full/open/test/hotspot/jtreg/gc/epsilon -Dtest.src.path=/opt/mach5/mesos/work_dir/jib-master/install/jdk-27+5-400/src.full/open/test/hotspot/jtreg/gc/epsilon -Dtest.classes=/opt/mach5/mesos/work_dir/slaves/da1065b5-7b94-4f0d-85e9-a3a252b9a32e-S35310/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/8d8921f0-665d-4ef8-a795-f8ee44886995/runs/9919dde9-bad0-41d0-ba63-dbad943e850d/testoutput/test-support/jtreg_open_test_hotspot_jtreg_tier1_gc/classes/2/gc/epsilon/TestInitAllocs.d -Dtest.class.path=/opt/mach5/mesos/work_dir/slaves/da1065b5-7b94-4f0d-85e9-a3a252b9a32e-S35310/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/8d8921f0-665d-4ef8-a795-f8ee44886995/runs/9919dde9-bad0-41d0-ba63-dbad943e850d/testoutput/test-support/jtreg_open_test_hotspot_jtreg_tier1_gc/classes/2/gc/epsilon/TestInitAllocs.d -Dtest.class.path.prefix=/opt/mach5/mesos/work_dir/slaves/da1065b5-7b94-4f0d-85e9-a3a252b9a32e-S35310/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/8d8921f0-665d-4ef8-a795-f8ee44886995/runs/9919dde9-bad0-41d0-ba63-dbad943e850d/testoutput/test-support/jtreg_open_test_hotspot_jtreg_tier1_gc/classes/2/gc/epsilon/TestInitAllocs.d:/opt/mach5/mesos/work_dir/jib-master/install/jdk-27+5-400/src.full/open/test/hotspot/jtreg/gc/epsilon -XX:MaxRAMPercentage=6.25 -Dtest.boot.jdk=/opt/mach5/mesos/work_dir/jib-master/install/jdk/25/37/bundles/linux-aarch64/jdk-25_linux-aarch64_bin.tar.gz/jdk-25 -Djava.io.tmpdir=/opt/mach5/mesos/work_dir/slaves/da1065b5-7b94-4f0d-85e9-a3a252b9a32e-S35310/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/8d8921f0-665d-4ef8-a795-f8ee44886995/runs/9919dde9-bad0-41d0-ba63-dbad943e850d/testoutput/test-support/jtreg_open_test_hotspot_jtreg_tier1_gc/tmp -XX:+UseCompactObjectHeaders -Djava.library.path=/opt/mach5/mesos/work_dir/jib-master/install/jdk-27+5-400/linux-aarch64-debug.test/hotspot/jtreg/native -Xmx256m -XX:+UnlockExperimentalVMOptions -XX:+UseEpsilonGC -XX:-UseTLAB -XX:-UseCompressedOops -XX:EpsilonMinHeapExpand=1024 -XX:EpsilonUpdateCountersStep=1 -XX:EpsilonPrintHeapSteps=1000000 com.sun.javatest.regtest.agent.MainWrapper /opt/mach5/mesos/work_dir/slaves/da1065b5-7b94-4f0d-85e9-a3a252b9a32e-S35310/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/8d8921f0-665d-4ef8-a795-f8ee44886995/runs/9919dde9-bad0-41d0-ba63-dbad943e850d/testoutput/test-support/jtreg_open_test_hotspot_jtreg_tier1_gc/gc/epsilon/TestInitAllocs.d/main.4.jta
Host: AArch64, 8 cores, 30G, Oracle Linux Server release 9.6
Time: Wed Jan 14 06:54:19 2026 UTC elapsed time: 0.060805 seconds (0d 0h 0m 0s)
--------------- T H R E A D ---------------
Current thread (0x0000ffff9c061900): JavaThread "Unknown thread" [_thread_in_vm, id=1771567, stack(0x0000ffffa021a000,0x0000ffffa0418000) (2040K)]
Stack: [0x0000ffffa021a000,0x0000ffffa0418000], sp=0x0000ffffa0416230, free space=2032k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x142e4f8] MemoryPool::record_peak_memory_usage()+0x18 (memoryPool.cpp:159)
V [libjvm.so+0x1432290] MemoryService::track_memory_usage()+0x44 (memoryService.cpp:149)
V [libjvm.so+0xbb3b18] EpsilonMonitoringSupport::update_counters()+0x28 (epsilonMonitoringSupport.cpp:103)
V [libjvm.so+0xbb0bd4] EpsilonHeap::allocate_work(unsigned long) [clone .part.0]+0x3b4 (epsilonHeap.cpp:161)
V [libjvm.so+0x13fc7f0] MemAllocator::mem_allocate(MemAllocator::Allocation&) const+0xe0 (memAllocator.cpp:236)
V [libjvm.so+0x13fc8f8] MemAllocator::allocate() const+0x88 (memAllocator.cpp:353)
V [libjvm.so+0x639be0] AOTStreamedHeapLoader::allocate_object(oopDesc*, markWord, unsigned long, JavaThread*)+0x160 (collectedHeap.inline.hpp:41)
V [libjvm.so+0x63bad0] AOTStreamedHeapLoader::IterativeObjectLoader::materialize_range(int, int, JavaThread*)+0x870 (aotStreamedHeapLoader.cpp:616)
V [libjvm.so+0x63c044] AOTStreamedHeapLoader::IterativeObjectLoader::materialize_next_batch(JavaThread*)+0x224 (aotStreamedHeapLoader.cpp:711)
V [libjvm.so+0x63ca88] AOTStreamedHeapLoader::materialize_early(JavaThread*)+0xbc (aotStreamedHeapLoader.cpp:751)
V [libjvm.so+0x63d2dc] AOTStreamedHeapLoader::materialize_objects()+0x78 (aotStreamedHeapLoader.cpp:858)
V [libjvm.so+0x65a50c] AOTThread::aot_thread_entry(JavaThread*, JavaThread*)+0xc (aotThread.cpp:111)
V [libjvm.so+0xf07568] JavaThread::thread_main_inner()+0x108 (javaThread.cpp:776)
V [libjvm.so+0x1891f8c] Thread::call_run()+0xac (thread.cpp:242)
V [libjvm.so+0x155ff3c] thread_native_entry(Thread*)+0x11c (os_linux.cpp:860)
C [libc.so.6+0x80b50] start_thread+0x300
siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: 0x0000000000000000
- caused by
-
JDK-8373941 Epsilon: Robust counter updates in early VM phases
-
- Resolved
-
- links to
-
Review(master)
openjdk/jdk/29254