JDK-8234684 : JFR crashes when rotating the JFR output during assertion failure
  • Type: Bug
  • Component: hotspot
  • Sub-Component: jfr
  • Affected Version: 14
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2019-11-22
  • Updated: 2019-12-13
  • Resolved: 2019-11-25
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 14
14 b25Fixed
Related Reports
Relates :  
Description
During an assertion failure another failure in JfrCheckpointManager::flush_type_set occurred.

Stack trace:

Stack: [0x000000d74b600000,0x000000d74b700000]
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [jvm.dll+0xa96e21]  os::platform_print_native_stack+0xf1  (os_windows_x86.cpp:369)
V  [jvm.dll+0xc9451b]  VMError::report+0xf0b  (vmerror.cpp:725)
V  [jvm.dll+0xc95dce]  VMError::report_and_die+0x8ae  (vmerror.cpp:1533)
V  [jvm.dll+0xc964c4]  VMError::report_and_die+0x64  (vmerror.cpp:1317)
V  [jvm.dll+0x4b6f02]  report_vm_error+0x102  (debug.cpp:264)
V  [jvm.dll+0x6aad41]  JfrCheckpointManager::flush_type_set+0x41  (jfrcheckpointmanager.cpp:464)
V  [jvm.dll+0x6dcd95]  JfrRecorderService::flush+0x4e5  (jfrrecorderservice.cpp:583)
V  [jvm.dll+0x6dd5b9]  JfrRecorderService::invoke_flush+0x1a9  (jfrrecorderservice.cpp:604)
V  [jvm.dll+0x6ddcbe]  JfrRecorderService::rotate+0x2ee  (jfrrecorderservice.cpp:454)
V  [jvm.dll+0x6b40dc]  JfrEmergencyDump::on_vm_shutdown+0x1ec  (jfremergencydump.cpp:474)
V  [jvm.dll+0xc959dc]  VMError::report_and_die+0x4bc  (vmerror.cpp:1420)
V  [jvm.dll+0xc964c4]  VMError::report_and_die+0x64  (vmerror.cpp:1317)
V  [jvm.dll+0x4b6f02]  report_vm_error+0x102  (debug.cpp:264)
V  [jvm.dll+0x59386d]  G1EvacuateRegionsBaseTask::evacuate_live_objects+0x1dd  (g1collectedheap.cpp:3776)
V  [jvm.dll+0x5938b5]  G1EvacuateRegionsTask::evacuate_live_objects+0x25  (g1collectedheap.cpp:3826)
V  [jvm.dll+0x59dab6]  G1EvacuateRegionsBaseTask::work+0xc6  (g1collectedheap.cpp:3809)
V  [jvm.dll+0xcd4f27]  GangWorker::loop+0xb7  (workgroup.cpp:341)
V  [jvm.dll+0xc30202]  Thread::call_run+0x192  (thread.cpp:403)
V  [jvm.dll+0xa955ee]  thread_native_entry+0x10e  (os_windows.cpp:465)
C  [ucrtbase.DLL+0x203ba]
C  [KERNEL32.DLL+0x13f2]
C  [ntdll.dll+0x154f4]

Comments
URL: https://hg.openjdk.java.net/jdk/jdk/rev/4cf1246fbb9c User: mgronlun Date: 2019-11-25 19:19:32 +0000
25-11-2019

ILW = HLM = P3
25-11-2019

JFR Event Streaming modified the emergency dump functionality to reuse the newly added flush mechanism in an attempt to avoid having to perform a relatively complex epoch transition during critical shutdown. flush() asserts that the system is not at a safepoint - a valid assumption in the regular case. But because of emergency dump situations, it cannot assert this categorically and needs to be removed.
25-11-2019