[11u] RFR: 8258414: OldObjectSample events too expensive
Aleksey Shipilev
shade at redhat.com
Thu Apr 22 09:32:58 UTC 2021
On 4/22/21 11:19 AM, Doerr, Martin wrote:
> Hi,
>
> it did not only break the debug build.
>
> We have seen a crash on Windows:
> # Internal Error (./src/hotspot/share/runtime/safepoint.cpp:894), pid=11412, tid=12932
> # fatal error: Deadlock in safepoint code. Should have called back to the VM before blocking.
>
> V [jvm.dll+0x247c64] report_fatal+0x64 (debug.cpp:268)
> V [jvm.dll+0x65e30b] SafepointSynchronize::block+0x14b (safepoint.cpp:893)
> V [jvm.dll+0x101d44] SafepointMechanism::block_if_requested+0x34 (safepointmechanism.inline.hpp:73)
> V [jvm.dll+0x6f0d9a] JavaThread::check_safepoint_and_suspend_for_native_trans+0xca (thread.cpp:2508)
> V [jvm.dll+0x5e3175] ObjectSampleCheckpoint::on_rotation+0xa5 (objectsamplecheckpoint.cpp:301)
> V [jvm.dll+0x397694] JfrRecorderService::pre_safepoint_write+0x64 (jfrrecorderservice.cpp:428)
> V [jvm.dll+0x3978a4] JfrRecorderService::rotate+0x194 (jfrrecorderservice.cpp:325)
> V [jvm.dll+0x398324] recorderthread_entry+0xd4 (jfrrecorderthreadloop.cpp:76)
> V [jvm.dll+0x6f7649] JavaThread::run+0x139 (thread.cpp:1840)
> V [jvm.dll+0x6f06b4] Thread::call_run+0x84 (thread.cpp:391)
> V [jvm.dll+0x5f8e36] thread_native_entry+0xd6 (os_windows.cpp:460)
>
> Test:
> jdk/jfr/startupargs/TestOldObjectQueueSize.java
Even on Linux, there are lots of jdk_jfr test failures:
TEST TOTAL PASS FAIL ERROR
>> jtreg:test/jdk/jdk/jfr 441 387 54 0 <<
Mostly failing like this:
# Internal Error
(/home/shade/trunks/jdk-updates-jdk11u-dev/src/hotspot/share/jfr/leakprofiler/checkpoint/objectSampleCheckpoint.cpp:298),
pid=2199952, tid=2200076
# assert(SafepointSynchronize::is_at_safepoint()) failed: must be at safepoint!
Stack: [0x00007f7cbd920000,0x00007f7cbda21000], sp=0x00007f7cbda1f700, free space=1021k
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native
code)
V [libjvm.so+0x1b836c7] VMError::report_and_die(int, char const*, char const*, __va_list_tag*,
Thread*, unsigned char*, void*, void*, char const*, int, unsigned long)+0x397
V [libjvm.so+0x1b845e5] VMError::report_and_die(Thread*, void*, char const*, int, char const*,
char const*, __va_list_tag*)+0x35
V [libjvm.so+0xc3d7aa] report_vm_error(char const*, int, char const*, char const*, ...)+0x10a
V [libjvm.so+0x1645973] ObjectSampleCheckpoint::on_rotation(ObjectSampler const*)+0x893
V [libjvm.so+0x1093c45] JfrRecorderService::pre_safepoint_write()+0x255
V [libjvm.so+0x1093e9c] JfrRecorderService::write()+0xcc
V [libjvm.so+0x1094242] JfrRecorderService::finalize_current_chunk()+0x22
V [libjvm.so+0x10948b0] JfrRecorderService::rotate(int)+0x370
V [libjvm.so+0x1096492] recorderthread_entry(JavaThread*, Thread*)+0x162
V [libjvm.so+0x1ab7d92] JavaThread::thread_main_inner()+0x252
V [libjvm.so+0x1ab0e8b] Thread::call_run()+0x7b
V [libjvm.so+0x1694806] thread_native_entry(Thread*)+0x116
David, Jaroslav, you have to run the targeted subsystem tests when doing a backport like this!
--
Thanks,
-Aleksey
More information about the jdk-updates-dev
mailing list