Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8343756

CAN_SHOW_REGISTERS_ON_ASSERT for Windows

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Fixed
    • Icon: P3 P3
    • 24
    • None
    • hotspot
    • None
    • b26
    • windows

      Problem summary:

      1. On asserts or guarantees, Windows debug builds do not print registers and context in the hs_err_pid<pid>.log.
      2. The associated hs_err_pid<pid>.mdmp has no exception record associated with the assert.
         A lot of manual labor and backtracking is required to locate the assert context in a debugger.

      Problem details:

      1. Here is an example hs_err_pid12856.log:

      #
      # A fatal error has been detected by the Java Runtime Environment:
      #
      # Internal Error (<path>\share\jfr\recorder\checkpoint\jfrCheckpointManager.cpp:660), pid=12856, tid=35792
      # assert(_global_mspace->live_list_is_empty()) failed: invariant
      #
      # JRE version: Java(TM) SE Runtime Environment (24.0) (slowdebug build 24-internal-2024-10-08-1448147.mgronlun...)
      # Java VM: Java HotSpot(TM) 64-Bit Server VM (slowdebug 24-internal-2024-10-08-1448147.mgronlun..., mixed mode, tiered, g1 gc, windows-amd64)
      # Core dump will be written. Default location:<path>\hs_err_pid11692.mdmp
      #
      # If you would like to submit a bug report, please visit:
      # https://bugreport.java.com/bugreport/crash.jsp
      # The crash happened outside the Java Virtual Machine in native code.
      # See problematic frame for where to report the bug.
      #

      --------------- T H R E A D ---------------

      Current thread (0x000002bd966cd410): JavaThread "JFR Recorder Thread" daemon [_thread_in_native, id=35792, stack(0x000000ee54d00000,0x000000ee54e00000) (1024K)]

      Stack: [0x000000ee54d00000,0x000000ee54e00000]
      Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
      V [jvm.dll+0xfc5973] os::win32::platform_print_native_stack+0x63 (os_windows_x86.cpp:235)
      V [jvm.dll+0x6df0bb] os::platform_print_native_stack+0x3b (os_windows_x86.inline.hpp:36)
      V [jvm.dll+0x12a96b4] VMError::report+0x18f4 (vmError.cpp:1015)
      V [jvm.dll+0x12ace0e] VMError::report_and_die+0x7ae (vmError.cpp:1846)
      V [jvm.dll+0x6dd139] report_vm_error+0xc9 (debug.cpp:201)
      V [jvm.dll+0xad67f8] JfrCheckpointManager::flush_type_set+0x188 (jfrCheckpointManager.cpp:660)
      V [jvm.dll+0xb3f3f6] Content<JfrCheckpointManager,&JfrCheckpointManager::flush_type_set>::process+0x16 (jfrRecorderService.cpp:158)
      V [jvm.dll+0xb3f967] WriteContent<Content<JfrCheckpointManager,&JfrCheckpointManager::flush_type_set> >::process+0x17 (jfrRecorderService.cpp:186)
      V [jvm.dll+0xb3d6c3] invoke<WriteContent<Content<JfrCheckpointManager,&JfrCheckpointManager::flush_type_set> > >+0x13 (jfrRecorderService.cpp:277)
      V [jvm.dll+0xb3d69b] flush_typeset+0x3b (jfrRecorderService.cpp:366)
      V [jvm.dll+0xb3ce63] JfrRecorderService::flush+0xc3 (jfrRecorderService.cpp:657)
      V [jvm.dll+0xb3f426] Content<JfrRecorderService,&JfrRecorderService::flush>::process+0x16 (jfrRecorderService.cpp:158)
      V [jvm.dll+0xb3f9c7] WriteContent<Content<JfrRecorderService,&JfrRecorderService::flush> >::process+0x17 (jfrRecorderService.cpp:186)
      V [jvm.dll+0xb3de43] invoke<WriteContent<Content<JfrRecorderService,&JfrRecorderService::flush> > >+0x13 (jfrRecorderService.cpp:277)
      V [jvm.dll+0xb3dd5b] invoke_with_flush_event<WriteContent<Content<JfrRecorderService,&JfrRecorderService::flush> > >+0x2b (jfrRecorderService.cpp:282)
      V [jvm.dll+0xb3c762] JfrRecorderService::invoke_flush+0x102 (jfrRecorderService.cpp:672)
      V [jvm.dll+0xb3cf6f] JfrRecorderService::flushpoint+0x3f (jfrRecorderService.cpp:682)
      V [jvm.dll+0xb409c7] recorderthread_entry+0x187 (jfrRecorderThreadLoop.cpp:85)
      V [jvm.dll+0xacafc6] JavaThread::thread_main_inner+0x146 (javaThread.cpp:759)
      V [jvm.dll+0xacae71] JavaThread::run+0x181 (javaThread.cpp:744)
      V [jvm.dll+0x11f9a3a] Thread::call_run+0x18a (thread.cpp:237)
      V [jvm.dll+0xfc06e9] thread_native_entry+0x129 (os_windows.cpp:554)
      C [ucrtbase.dll+0x21bb2] (no source info available)
      C [KERNEL32.DLL+0x17344] (no source info available)
      C [ntdll.dll+0x526b1] (no source info available)

      [ NO REGISTER INFORMATION ] <<---


      2. Here is the associated hs_err_pid12856.mdmp file loaded into Windbg:

      Microsoft (R) Windows Debugger Version 10.0.22000.194 AMD64
      Copyright (c) Microsoft Corporation. All rights reserved.


      Loading Dump File [<path>\hs_err_pid12856.mdmp]
      User Mini Dump File with Full Memory: Only application data is available

      Executable search path is:
      Windows 10 Version 19045 MP (16 procs) Free x64
      Product: WinNt, suite: SingleUserTS
      Edition build lab: 19041.1.amd64fre.vb_release.191206-1406

      .................................................
      For analysis of this file, run !analyze -v
      ntdll!NtWaitForSingleObject+0x14:
      00007ff9`659ad064 c3 ret

      2.1. Try to get the exception context:

      0:000> .excr
      Minidump doesn't have an exception context
      Unable to get exception context, HRESULT 0x80004002

      2.2. The .mdmp file does not contain an exception context (EXCEPTION_RECORD).

      2.3. To get something meaningful from the .mdmp file,
              you will have to do manual work to locate something that looks associated with the assert; a process similar to what follows.

      2.3.1. Take the thread id (tid) from the hs_err_pid12856.log:

      # Internal Error (<path>\share\jfr\recorder\checkpoint\jfrCheckpointManager.cpp:660), pid=12856, tid=35792

      2.3.2. The tid listed in the hs_err_pid12856.log is in decimal, convert to hex;

      .formats 0n35792
      Evaluate expression:
        Hex: 00000000`00008bd0
        Decimal: 35792
        Octal: 0000000000000000105720
        Binary: 00000000 00000000 00000000 00000000 00000000 00000000 10001011 11010000
        Chars: ........
        Time: Thu Jan 1 10:56:32 1970
        Float: low 5.01553e-041 high 0
        Double: 1.76836e-319

      2.3.3. List all threads.

      0:000> ~
      . 0 Id: 2dac.953c Suspend: 0 Teb: 000000ee`5352d000 Unfrozen
         1 Id: 2dac.1388 Suspend: 0 Teb: 000000ee`5352f000 Unfrozen
         2 Id: 2dac.8cd0 Suspend: 0 Teb: 000000ee`53531000 Unfrozen
         3 Id: 2dac.ba4c Suspend: 0 Teb: 000000ee`53533000 Unfrozen
         4 Id: 2dac.5258 Suspend: 0 Teb: 000000ee`53535000 Unfrozen
         5 Id: 2dac.a394 Suspend: 0 Teb: 000000ee`53537000 Unfrozen ""
         6 Id: 2dac.8f4 Suspend: 0 Teb: 000000ee`53539000 Unfrozen ""
         7 Id: 2dac.7480 Suspend: 0 Teb: 000000ee`5353b000 Unfrozen ""
         8 Id: 2dac.b704 Suspend: 0 Teb: 000000ee`5353d000 Unfrozen ""
         9 Id: 2dac.6a6c Suspend: 0 Teb: 000000ee`5353f000 Unfrozen ""
        10 Id: 2dac.a1c0 Suspend: 0 Teb: 000000ee`53541000 Unfrozen ""
        11 Id: 2dac.82f8 Suspend: 0 Teb: 000000ee`53543000 Unfrozen ""
        12 Id: 2dac.97fc Suspend: 0 Teb: 000000ee`53545000 Unfrozen ""
        13 Id: 2dac.a260 Suspend: 0 Teb: 000000ee`53547000 Unfrozen ""
        14 Id: 2dac.6b00 Suspend: 0 Teb: 000000ee`53549000 Unfrozen ""
        15 Id: 2dac.70cc Suspend: 1 Teb: 000000ee`5354b000 Unfrozen ""
        16 Id: 2dac.5be0 Suspend: 0 Teb: 000000ee`5354d000 Unfrozen ""
        17 Id: 2dac.97b8 Suspend: 0 Teb: 000000ee`5354f000 Unfrozen ""
        18 Id: 2dac.16dc Suspend: 0 Teb: 000000ee`53551000 Unfrozen ""
        19 Id: 2dac.5324 Suspend: 0 Teb: 000000ee`53553000 Unfrozen ""
        20 Id: 2dac.4c48 Suspend: 0 Teb: 000000ee`53555000 Unfrozen ""
        21 Id: 2dac.3a84 Suspend: 0 Teb: 000000ee`53557000 Unfrozen ""
        22 Id: 2dac.46dc Suspend: 0 Teb: 000000ee`53559000 Unfrozen ""
        23 Id: 2dac.8bd0 Suspend: 0 Teb: 000000ee`5356f000 Unfrozen "" <<-- 0x8bd0
        24 Id: 2dac.1ee4 Suspend: 0 Teb: 000000ee`53581000 Unfrozen ""
        25 Id: 2dac.287c Suspend: 0 Teb: 000000ee`53583000 Unfrozen ""
        26 Id: 2dac.2290 Suspend: 0 Teb: 000000ee`53585000 Unfrozen ""
        27 Id: 2dac.9dc4 Suspend: 0 Teb: 000000ee`53587000 Unfrozen ""
        28 Id: 2dac.57fc Suspend: 0 Teb: 000000ee`53589000 Unfrozen ""
        29 Id: 2dac.85dc Suspend: 0 Teb: 000000ee`5358b000 Unfrozen ""
        30 Id: 2dac.4280 Suspend: 0 Teb: 000000ee`5358d000 Unfrozen ""
        31 Id: 2dac.73e8 Suspend: 0 Teb: 000000ee`5358f000 Unfrozen ""
        32 Id: 2dac.a518 Suspend: 0 Teb: 000000ee`53591000 Unfrozen ""
        33 Id: 2dac.56d8 Suspend: 0 Teb: 000000ee`53593000 Unfrozen ""
        34 Id: 2dac.90dc Suspend: 0 Teb: 000000ee`53595000 Unfrozen ""
        35 Id: 2dac.7444 Suspend: 0 Teb: 000000ee`53597000 Unfrozen ""
        36 Id: 2dac.a64c Suspend: 0 Teb: 000000ee`5359d000 Unfrozen ""
        37 Id: 2dac.8858 Suspend: 0 Teb: 000000ee`535a1000 Unfrozen ""


      2.3.4. Switch to thread 23.

      ~23s

      ntdll!NtGetContextThread+0x14:
      00007ff9`659aee34 c3 ret


      2.3.5. Manually inspect the stack to find something
                that looks somewhat related to the assert:

      Manually searching the stack for something interesting...

      0:023> dps @rsp
      000000ee`54dfd2e8 000002bd`f3001c18
      000000ee`54dfd2f0 00000000`50280163
      000000ee`54dfd2f8 00000000`00000000
      000000ee`54dfd300 00000000`00000030
      000000ee`54dfd308 00000000`00000000
      000000ee`54dfd310 00000000`00000001
      000000ee`54dfd318 000002bd`f3100000
      000000ee`54dfd320 000002bd`99d20000
      000000ee`54dfd328 00007ff9`65a0a386 ntdll!RtlpValidateHeap+0x32
      000000ee`54dfd330 000002bd`99d20000
      000000ee`54dfd338 00000000`00000000
      000000ee`54dfd340 00000000`00000020
      000000ee`54dfd348 00000000`00000050
      000000ee`54dfd350 00000000`00000000
      000000ee`54dfd358 000000ee`54dfd364
      000000ee`54dfd360 00000004`54dfd3b1
      000000ee`54dfd368 000000ee`54dfd490
      000000ee`54dfd370 000000ee`54dfd3cc
      000000ee`54dfd378 000002bd`99d20000
      000000ee`54dfd380 00000000`00000100
      000000ee`54dfd388 00000000`00000000
      000000ee`54dfd390 00000000`00000110
      000000ee`54dfd398 00000000`00000001
      000000ee`54dfd3a0 000002bd`99d20000
      000000ee`54dfd3a8 00000000`00000000
      000000ee`54dfd3b0 000002bd`99d20000
      000000ee`54dfd3b8 00007ff9`65a08a86 ntdll!RtlDebugAllocateHeap+0x366
      000000ee`54dfd3c0 000002bd`99d20750
      000000ee`54dfd3c8 00000000`00000000
      000000ee`54dfd3d0 000002bd`99d20750
      000000ee`54dfd3d8 00000000`00000000
      000000ee`54dfd3e0 000000ee`54dfd601

      ...

      2.3.6. At a suspected point, backtracking is necessary to understand the assert context.

      dps 000000ee`54dff0e8

      000000ee`54dff0e8 00007ff9`18aa8af2 jvm!os::abort+0x102 [<path>\src\hotspot\os\windows\os_windows.cpp @ 1369]
      000000ee`54dff0f0 ffffffff`ffffffff
      000000ee`54dff0f8 00007ff9`00002dac
      000000ee`54dff100 00000000`000004d8
      000000ee`54dff108 00007ff9`00001826
      000000ee`54dff110 00000000`00000000
      000000ee`54dff118 00000000`00000000
      000000ee`54dff120 00000000`00000000
      000000ee`54dff128 00007ff9`197fb104 jvm!ZPointerLoadShiftTable+0x7e4
      000000ee`54dff130 00001826`00002dac
      000000ee`54dff138 00007ff9`18d9dfb7 jvm!print_bug_submit_message+0xf7 [<path>\src\hotspot\share\utilities\vmError.cpp @ 180]
      000000ee`54dff140 00000000`00000000
      000000ee`54dff148 ffffffff`ffffffff
      000000ee`54dff150 00000000`00000001
      000000ee`54dff158 000000ee`54dff020
      000000ee`54dff160 000002bd`00000001
      0:023>
      000000ee`54dff168 00000000`00000000
      000000ee`54dff170 00000000`00000000
      000000ee`54dff178 00007ff9`18d9d39a jvm!VMError::report_and_die+0xd3a [<path>\src\hotspot\share\utilities\vmError.cpp @ 1953]
      000000ee`54dff180 000000ee`e0000001
      000000ee`54dff188 00000000`00000000
      000000ee`54dff190 00000000`00000000
      000000ee`54dff198 00000000`00000000
      000000ee`54dff1a0 00000000`000007d0
      000000ee`54dff1a8 00007ff9`1837c887
      000000ee`54dff1b0 000000ee`54dff1d0
      000000ee`54dff1b8 000002bf`ffb46aa0
      000000ee`54dff1c0 00000000`00000001
      000000ee`54dff1c8 00007ff9`17b0f463 jvm!ScopedFence<0>::prefix+0x13 [<path>\src\hotspot\share\runtime\atomic.hpp @ 855]
      000000ee`54dff1d0 000000ee`54dff201
      000000ee`54dff1d8 00000000`00000000
      000000ee`54dff1e0 00000000`0000000a
      0:023>
      000000ee`54dff1e8 00000000`00008bd0
      000000ee`54dff1f0 000000ee`54dff210
      000000ee`54dff1f8 000002bf`ffb46aa0
      000000ee`54dff200 00007ff9`19638b50 jvm!fdStream::`vftable'
      000000ee`54dff208 00000200`00000000
      000000ee`54dff210 000002bf`00000000
      000000ee`54dff218 00000000`000003ce
      000000ee`54dff220 00000000`00000001
      000000ee`54dff228 00007ff9`19cb21b0 jvm!buffer
      000000ee`54dff230 00000000`000007d0
      000000ee`54dff238 00000000`00000001
      000000ee`54dff240 000000ee`00000000
      000000ee`54dff248 00000000`00000000
      000000ee`54dff250 000002bf`ffb4652a
      000000ee`54dff258 00007ff9`185d3efb jvm!JfrVersionSystem::Node::remove_ref+0x7b [<path>\src\hotspot\share\jfr\utilities\jfrVersionSystem.inline.hpp @ 110]
      000000ee`54dff260 000002bf`ffb46a90
      0:023>
      000000ee`54dff268 00000000`00000000
      000000ee`54dff270 000002bf`ffb46528
      000000ee`54dff278 00007ff9`17b0ecc8 jvm!Atomic::load_acquire<Method *>+0x18 [<path>\src\hotspot\share\runtime\atomic.hpp @ 888]
      000000ee`54dff280 000000ee`54dff2a0
      000000ee`54dff288 00007ff9`17e09c67
      000000ee`54dff290 00007ff9`19638b50 jvm!fdStream::`vftable'
      000000ee`54dff298 00000000`00000000
      000000ee`54dff2a0 000002bf`00000000
      000000ee`54dff2a8 00000000`0001107b
      000000ee`54dff2b0 00000000`00000001
      000000ee`54dff2b8 00007ff9`19cb21b0 jvm!buffer
      000000ee`54dff2c0 00000000`000007d0
      000000ee`54dff2c8 000002bf`ffffffff
      000000ee`54dff2d0 00000000`00000001
      000000ee`54dff2d8 000000ee`00000008
      000000ee`54dff2e0 000000ee`54dff2f0
      0:023>
      000000ee`54dff2e8 00000000`00000001
      000000ee`54dff2f0 00000000`00000000
      000000ee`54dff2f8 00000000`00000000
      000000ee`54dff300 00000000`00000000
      000000ee`54dff308 00000000`00000000
      000000ee`54dff310 00000710`fffffb30
      000000ee`54dff318 000004d0`fffffb30
      000000ee`54dff320 00000150`000000f0
      000000ee`54dff328 00007ff9`180fbb41 jvm!Atomic::inc<unsigned __int64>+0x21 [<path>\src\hotspot\share\runtime\atomic.hpp @ 632]
      000000ee`54dff330 00000000`c0000005
      000000ee`54dff338 00000000`00000000
      000000ee`54dff340 00007ff9`185c67d6 jvm!JfrCheckpointManager::flush_type_set+0x166 [<path>src\hotspot\share\jfr\recorder\checkpoint\jfrCheckpointManager.cpp @ 660]
      000000ee`54dff348 00000000`00000002
      000000ee`54dff350 00000000`00000001
      000000ee`54dff358 000002bd`f3250000
      000000ee`54dff360 00000000`00000000

      To say this is tedious and time-consuming is an understatement,
       and is especially irritating since this is a debug build, meaning all
         details are available; it's just that they are not provided.

      Proposal:

      Build CAN_SHOW_REGISTERS_ON_ASSERT support also for Windows and ensure a proper EXCEPTION_RECORD is provided in the .mdmp file.

      Results:

      1. Here is an example for the new hs_err_pid12016.log:

      #
      # A fatal error has been detected by the Java Runtime Environment:
      #
      # Internal Error (<path>\open\src\hotspot\share\jfr\recorder\checkpoint\jfrCheckpointManager.cpp:660), pid=12016, tid=20240
      # guarantee(_global_mspace->live_list_is_empty()) failed: invariant
      #
      # JRE version: Java(TM) SE Runtime Environment (24.0) (slowdebug build 24-internal-2024-10-28-1355460.mgronlun...)
      # Java VM: Java HotSpot(TM) 64-Bit Server VM (slowdebug 24-internal-2024-10-28-1355460.mgronlun..., interpreted mode, compressed oops, compressed class ptrs, g1 gc, windows-amd64)
      # Problematic frame:
      # V [jvm.dll+0xad5a94] JfrCheckpointManager::flush_type_set+0x154
      #
      # If you would like to submit a bug report, please visit:
      # https://bugreport.java.com/bugreport/crash.jsp
      # The crash happened outside the Java Virtual Machine in native code.
      # See problematic frame for where to report the bug.
      #

      --------------- T H R E A D ---------------

      Current thread (0x000001a2457d3200): JavaThread "JFR Recorder Thread" daemon [_thread_in_native, id=20240, stack(0x0000001690700000,0x0000001690800000) (1024K)]

      Stack: [0x0000001690700000,0x0000001690800000], sp=0x00000016907ff7c0, free space=1021k
      Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
      V [jvm.dll+0xad5a94] JfrCheckpointManager::flush_type_set+0x154 (jfrCheckpointManager.cpp:660)
      V [jvm.dll+0xb40c06] Content<JfrCheckpointManager,&JfrCheckpointManager::flush_type_set>::process+0x16 (jfrRecorderService.cpp:158)
      V [jvm.dll+0xb41177] WriteContent<Content<JfrCheckpointManager,&JfrCheckpointManager::flush_type_set> >::process+0x17 (jfrRecorderService.cpp:186)
      V [jvm.dll+0xb3eed3] invoke<WriteContent<Content<JfrCheckpointManager,&JfrCheckpointManager::flush_type_set> > >+0x13 (jfrRecorderService.cpp:277)
      V [jvm.dll+0xb3eeab] flush_typeset+0x3b (jfrRecorderService.cpp:366)
      V [jvm.dll+0xb3e673] JfrRecorderService::flush+0xc3 (jfrRecorderService.cpp:657)
      V [jvm.dll+0xb40c36] Content<JfrRecorderService,&JfrRecorderService::flush>::process+0x16 (jfrRecorderService.cpp:158)
      V [jvm.dll+0xb411d7] WriteContent<Content<JfrRecorderService,&JfrRecorderService::flush> >::process+0x17 (jfrRecorderService.cpp:186)
      V [jvm.dll+0xb3f653] invoke<WriteContent<Content<JfrRecorderService,&JfrRecorderService::flush> > >+0x13 (jfrRecorderService.cpp:277)
      V [jvm.dll+0xb3f56b] invoke_with_flush_event<WriteContent<Content<JfrRecorderService,&JfrRecorderService::flush> > >+0x2b (jfrRecorderService.cpp:282)
      V [jvm.dll+0xb3df72] JfrRecorderService::invoke_flush+0x102 (jfrRecorderService.cpp:672)
      V [jvm.dll+0xb3e77f] JfrRecorderService::flushpoint+0x3f (jfrRecorderService.cpp:682)
      V [jvm.dll+0xb42107] recorderthread_entry+0x187 (jfrRecorderThreadLoop.cpp:85)
      V [jvm.dll+0xacc2b6] JavaThread::thread_main_inner+0x146 (javaThread.cpp:759)
      V [jvm.dll+0xacc161] JavaThread::run+0x181 (javaThread.cpp:744)
      V [jvm.dll+0x11f7e4a] Thread::call_run+0x18a (thread.cpp:237)
      V [jvm.dll+0xfbeb09] thread_native_entry+0x129 (os_windows.cpp:555)
      C [ucrtbase.dll+0x21bb2] (no source info available)
      C [KERNEL32.DLL+0x17344] (no source info available)
      C [ntdll.dll+0x526b1] (no source info available)

      Registers:
      RAX=0x000001a22d1d0000, RBX=0x000001a245211320, RCX=0x00000016907ff680, RDX=0x000001a240550ee0
      RSP=0x00000016907ff7c0, RBP=0x0000000000000000, RSI=0x0000000000000000, RDI=0x0000000000000000
      R8 =0x0000000000000001, R9 =0x0000000000000008, R10=0x0000000000000000, R11=0x00000016907ff3b0
      R12=0x0000000000000000, R13=0x0000000000000000, R14=0x0000000000000000, R15=0x0000000000000000
      RIP=0x00007ff8b94b5a94, EFLAGS=0x0000000000010246

      XMM[0]=0x0000000000000000 0x0000001f00000000
      XMM[1]=0x0000000000000000 0x0000000000000000
      XMM[2]=0x0000000000000000 0x0000000000000000
      XMM[3]=0x0000000000000000 0x0000000000000000
      XMM[4]=0x0000000000000000 0x0000000000000000
      XMM[5]=0x0000000000000000 0x0000000000000000
      XMM[6]=0x0000000000000000 0x0000000000000000
      XMM[7]=0x0000000000000000 0x0000000000000000
      XMM[8]=0x0000000000000000 0x0000000000000000
      XMM[9]=0x0000000000000000 0x0000000000000000
      XMM[10]=0x0000000000000000 0x0000000000000000
      XMM[11]=0x0000000000000000 0x0000000000000000
      XMM[12]=0x0000000000000000 0x0000000000000000
      XMM[13]=0x0000000000000000 0x0000000000000000
      XMM[14]=0x0000000000000000 0x0000000000000000
      XMM[15]=0x0000000000000000 0x0000000000000000
        MXCSR=0x00001fa0


      Register to memory mapping:

      RAX=0x000001a22d1d0000 in mmap'd memory region [0x000001a22d1d0000 - 0x000001a22d1d1000], tag mtInternal
      [0x00007ff8b90be146]initialize_assert_poison+0x16 (debug.cpp:718)
      [0x00007ff8b9be7c4b]Threads::create_vm+0x20b (threads.cpp:498)
      [0x00007ff8b95787fc]JNI_CreateJavaVM_inner+0x7c (jni.cpp:3596)
      [0x00007ff8b955bd9f]JNI_CreateJavaVM+0x2f (jni.cpp:3687)

      RBX=0x000001a245211320 points into unknown readable memory: 0x00007ff8b999e9e0 | e0 e9 99 b9 f8 7f 00 00
      RCX=0x00000016907ff680 is pointing into the stack for thread: 0x000001a2457d3200
      RDX=0x000001a240550ee0 into live malloced block starting at 0x000001a240550ed0, size 56, tag mtTracing
      [0x00007ff8b94b139a]JfrCHeapObj::operator new+0x1a (jfrAllocation.cpp:96)[0x00007ff8b94b5c62]create_mspace<JfrMemorySpace<JfrCheckpointManager,JfrMspaceRetrieval,JfrLinkedList<JfrBuffer,JfrCHeapObj>,JfrLinkedList<JfrBuffer,JfrCHeapObj>,1>,JfrCheckpointManager>+0x22 (jfrMemorySpace.inline.hpp:310)[0x00007ff8b94b3f17]JfrCheckpointManager::initialize_early+0x77 (jfrCheckpointManager.cpp:104)[0x00007ff8b951bd01]JfrRecorder::create_checkpoint_manager+0x71 (jfrRecorder.cpp:361)

      RSP=0x00000016907ff7c0 is pointing into the stack for thread: 0x000001a2457d3200
      RBP=0x0 is null
      RSI=0x0 is null
      RDI=0x0 is null
      R8 =0x0000000000000001 is an unknown value
      R9 =0x0000000000000008 is an unknown value
      R10=0x0 is null
      R11=0x00000016907ff3b0 is pointing into the stack for thread: 0x000001a2457d3200
      R12=0x0 is null
      R13=0x0 is null
      R14=0x0 is null
      R15=0x0 is null

      Top of Stack: (sp=0x00000016907ff7c0)
      0x00000016907ff7c0: 00007ff8ba3ec4c0 0000001600000294 ..>.............
      0x00000016907ff7d0: 00007ff8ba3ebbc8 00007ff8ba3ec4b0 ..>.......>.....
      0x00000016907ff7e0: 000001a2457d3200 00000000000000f8 .2}E............
      0x00000016907ff7f0: 00000016907ff810 00007ff8b95200d0 ..........R.....
      0x00000016907ff800: 000001a2457d3200 00007ff800000001 .2}E............
      0x00000016907ff810: 000001a245033110 00000000000000f0 .1.E............
      0x00000016907ff820: 000001a245232320 000000000002c793 ##E............
      0x00000016907ff830: 000000000002c8c3 00007ff8b9beb415 ................
      0x00000016907ff840: 00000016907ff930 00007ff8b95214d4 0.........R.....
      0x00000016907ff850: 000001a245033110 00007ff8b9520c06 .1.E......R.....
      0x00000016907ff860: 000001a2405580d0 00007ff8b94bf943 ..U@....C.K.....
      0x00000016907ff870: 000001a245033110 00007ff8b952114f .1.E....O.R.....
      0x00000016907ff880: 0000001600000001 00007ff8b9521177 ........w.R.....
      0x00000016907ff890: 00000016907ff920 00007ff8b94c1543 .......C.L.....
      0x00000016907ff8a0: 000001a245033110 00007ff8bab54a30 .1.E....0J......
      0x00000016907ff8b0: 0000000000000000 00007ff8b951eb7d ........}.Q.....
      0x00000016907ff8c0: 00000016907ff930 00007ff8b951eed3 0.........Q.....
      0x00000016907ff8d0: 00000016907ff930 000001a245033110 0........1.E....
      0x00000016907ff8e0: 00000016907ff920 00007ff8b951eb52 .......R.Q.....
      0x00000016907ff8f0: 00000016907ff930 00007ff8b951eeab 0.........Q.....
      0x00000016907ff900: 00000016907ff930 000001a245033110 0........1.E....
      0x00000016907ff910: 00000016907ff920 000001a245033110 ........1.E....
      0x00000016907ff920: 000001a2405580d0 000001a200000000 ..U@............
      0x00000016907ff930: 0000001183fc962a 0000000000000000 *...............
      0x00000016907ff940: 000001a245033110 00000016907ff920 .1.E.... .......
      0x00000016907ff950: 000000000002c8c3 00000000000000cb ................
      0x00000016907ff960: 00000016907ff980 00007ff8b951e673 ........s.Q.....
      0x00000016907ff970: 000001a2405580d0 000001a245033110 ..U@.....1.E....
      0x00000016907ff980: 000001a2457b8c90 000001a2457d3200 ..{E.....2}E....
      0x00000016907ff990: 0000000000000011 00007ff8b8ccd2bb ................
      0x00000016907ff9a0: 00000016907ff9c0 00007ff8b9520c36 ........6.R.....
      0x00000016907ff9b0: 00000016907ffbf8 000001a2407ef570 ........p.~@....

      Instructions: (pc=0x00007ff8b94b5a94)
        0x00007ff8b94b5994: e8 77 39 98 ff 48 8b 4c 24 20 e8 7d 14 00 00 48
        0x00007ff8b94b59a4: 89 44 24 28 48 8d 4c 24 40 e8 ce 42 98 ff eb 0f
        0x00007ff8b94b59b4: 48 8b 4c 24 20 e8 62 14 00 00 48 89 44 24 28 48
        0x00007ff8b94b59c4: 8d 0d de c9 68 01 e8 31 bb 00 00 0f b6 c0 85 c0
        0x00007ff8b94b59d4: 0f 84 46 01 00 00 48 8b 8c 24 a0 00 00 00 e8 a9
        0x00007ff8b94b59e4: e8 ff ff 48 8b d0 48 8d 4c 24 50 e8 5c 87 00 00
        0x00007ff8b94b59f4: 48 8d 54 24 50 48 8d 4c 24 30 e8 cd d5 54 ff 45
        0x00007ff8b94b5a04: 33 c0 48 8d 54 24 30 48 8b 84 24 a0 00 00 00 48
        0x00007ff8b94b5a14: 8b 48 08 e8 44 3e 00 00 33 c0 85 c0 75 0c e8 49
        0x00007ff8b94b5a24: 5d 54 ff 0f b6 c0 85 c0 75 40 48 8b 84 24 a0 00
        0x00007ff8b94b5a34: 00 00 48 8b 08 e8 a2 ab 00 00 0f b6 c0 85 c0 75
        0x00007ff8b94b5a44: 29 48 8b 05 e4 09 5c 01 c6 00 58 4c 8d 0d ea 69
        0x00007ff8b94b5a54: f3 00 4c 8d 05 9b 60 f3 00 ba 93 02 00 00 48 8d
        0x00007ff8b94b5a64: 0d e7 69 f3 00 e8 e2 88 c0 ff 33 c0 85 c0 75 a8
        0x00007ff8b94b5a74: 33 d2 48 8b 84 24 a0 00 00 00 48 8b 08 e8 ea bb
        0x00007ff8b94b5a84: 00 00 0f b6 c0 85 c0 75 29 48 8b 05 9c 09 5c 01
      =>0x00007ff8b94b5a94: c6 00 58 4c 8d 0d 12 6a f3 00 4c 8d 05 23 61 f3
        0x00007ff8b94b5aa4: 00 ba 94 02 00 00 48 8d 0d 0f 6a f3 00 e8 9a 88
        0x00007ff8b94b5ab4: c0 ff 33 c0 85 c0 75 b8 45 33 c0 48 8b 84 24 a0
        0x00007ff8b94b5ac4: 00 00 00 48 8b 10 48 8d 4c 24 30 e8 1c 52 00 00
        0x00007ff8b94b5ad4: 48 8b 8c 24 a0 00 00 00 e8 af e7 ff ff 48 8b d0
        0x00007ff8b94b5ae4: 48 8d 4c 24 60 e8 f2 8a 00 00 48 8d 54 24 60 48
        0x00007ff8b94b5af4: 8d 4c 24 38 e8 d3 d4 54 ff 45 33 c0 48 8d 54 24
        0x00007ff8b94b5b04: 38 48 8b 84 24 a0 00 00 00 48 8b 48 10 e8 9a 3e
        0x00007ff8b94b5b14: 00 00 48 8d 4c 24 60 e8 40 8d 00 00 48 8b 44 24
        0x00007ff8b94b5b24: 28 48 81 c4 98 00 00 00 c3 cc cc cc cc cc cc cc
        0x00007ff8b94b5b34: cc cc cc cc cc cc cc cc cc cc cc cc 48 89 54 24
        0x00007ff8b94b5b44: 10 48 89 4c 24 08 48 83 ec 48 48 b8 00 00 00 00
        0x00007ff8b94b5b54: 00 00 00 80 48 39 44 24 50 76 55 33 c0 85 c0 75
        0x00007ff8b94b5b64: 0c e8 06 5c 54 ff 0f b6 c0 85 c0 75 39 33 c0 85
        0x00007ff8b94b5b74: c0 75 33 48 8b 05 b2 08 5c 01 c6 00 58 48 8b 44
        0x00007ff8b94b5b84: 24 50 48 89 44 24 20 4c 8d 0d 56 86 f3 00 4c 8d


      Stack slot to memory mapping:

      stack at sp + 0 slots: 0x00007ff8ba3ec4c0 jvm.dll::ZPointerLoadShiftTable + 0x38d8
      stack at sp + 1 slots: 0x0000001600000294 is an unknown value
      stack at sp + 2 slots: 0x00007ff8ba3ebbc8 jvm.dll::ZPointerLoadShiftTable + 0x2fe0
      stack at sp + 3 slots: 0x00007ff8ba3ec4b0 jvm.dll::ZPointerLoadShiftTable + 0x38c8
      stack at sp + 4 slots: 0x000001a2457d3200 is a thread
      stack at sp + 5 slots: 0x00000000000000f8 is an unknown value
      stack at sp + 6 slots: 0x00000016907ff810 is pointing into the stack for thread: 0x000001a2457d3200
      stack at sp + 7 slots: 0x00007ff8b95200d0 jvm.dll::WriterHost<EncoderHost<BigEndianEncoderImpl,BigEndianEncoderImpl>,EncoderHost<Varint128EncoderImpl,BigEndianEncoderImpl>,StreamWriterHost<MallocAdapter<1048576>,JfrCHeapObj> >::write_padded_at_offset<unsigned __int64> + 0x60

      Lock stack of current Java thread (top to bottom):

      2. Here is the new associated hs_err_pid12016.mdmp file loaded into Windbg:

      Microsoft (R) Windows Debugger Version 10.0.22000.194 AMD64
      Copyright (c) Microsoft Corporation. All rights reserved.


      Loading Dump File [<path>\hs_err_pid12016.mdmp]
      User Mini Dump File with Full Memory: Only application data is available

      Executable search path is:
      Windows 10 Version 19045 MP (16 procs) Free x64
      Product: WinNt, suite: SingleUserTS
      Edition build lab: 19041.1.amd64fre.vb_release.191206-1406
      .................................................
      This dump file has an exception of interest stored in it. <<<----- HERE -------
      The stored exception information can be accessed via .ecxr.
      (2ef0.4f10): Access violation - code c0000005 (first/second chance not available)
      For analysis of this file, run !analyze -v
      ntdll!NtGetContextThread+0x14:
      00007ff9`659aee34 c3 ret


      2.1. Try to get the exception context (EXCEPTION_RECORD):

      0:019> .ecxr
      *** WARNING: Unable to verify checksum for jvm.dll
      rax=000001a22d1d0000 rbx=000001a245211320 rcx=00000016907ff680
      rdx=000001a240550ee0 rsi=0000000000000000 rdi=0000000000000000
      rip=00007ff8b94b5a94 rsp=00000016907ff7c0 rbp=0000000000000000
       r8=0000000000000001 r9=0000000000000008 r10=0000000000000000
      r11=00000016907ff3b0 r12=0000000000000000 r13=0000000000000000
      r14=0000000000000000 r15=0000000000000000
      iopl=0 nv up ei pl zr na po nc
      cs=0033 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00010246
      jvm!JfrCheckpointManager::flush_type_set+0x154:
      00007ff8`b94b5a94 c60058 mov byte ptr [rax],58h ds:000001a2`2d1d0000=58

      2.2 Exception context in .mdmp located, loaded and presented.

      0:019> kb
        *** Stack trace for last set context - .thread/.cxr resets it
       # RetAddr : Args to Child : Call Site
      00 00007ff8`b9520c06 : 000001a2`405580d0 00007ff8`b94bf943 000001a2`45033110 00007ff8`b952114f : jvm!JfrCheckpointManager::flush_type_set+0x154 [<path>\open\src\hotspot\share\jfr\recorder\checkpoint\jfrCheckpointManager.cpp @ 660]
      01 00007ff8`b9521177 : 00000016`907ff920 00007ff8`b94c1543 000001a2`45033110 00007ff8`bab54a30 : jvm!Content<JfrCheckpointManager,&JfrCheckpointManager::flush_type_set>::process+0x16 [<path>\open\src\hotspot\share\jfr\recorder\service\jfrRecorderService.cpp @ 158]
      02 00007ff8`b951eed3 : 00000016`907ff930 000001a2`45033110 00000016`907ff920 00007ff8`b951eb52 : jvm!WriteContent<Content<JfrCheckpointManager,&JfrCheckpointManager::flush_type_set> >::process+0x17 [<path>\open\src\hotspot\share\jfr\recorder\service\jfrRecorderService.cpp @ 186]
      03 00007ff8`b951eeab : 00000016`907ff930 000001a2`45033110 00000016`907ff920 000001a2`45033110 : jvm!invoke<WriteContent<Content<JfrCheckpointManager,&JfrCheckpointManager::flush_type_set> > >+0x13 [<path>\src\hotspot\share\jfr\recorder\service\jfrRecorderService.cpp @ 277]
      04 00007ff8`b951e673 : 000001a2`405580d0 000001a2`45033110 000001a2`457b8c90 000001a2`457d3200 : jvm!flush_typeset+0x3b [<path>\open\src\hotspot\share\jfr\recorder\service\jfrRecorderService.cpp @ 366]
      05 00007ff8`b9520c36 : 00000016`907ffbf8 000001a2`407ef570 000001a2`457b8ca0 000001a2`457b8cc0 : jvm!JfrRecorderService::flush+0xc3 [<path>\open\src\hotspot\share\jfr\recorder\service\jfrRecorderService.cpp @ 657]
      06 00007ff8`b95211d7 : 00000016`907ffb18 000001a2`457b8ca0 000001a2`457b8cc0 00007ff8`b9a360c9 : jvm!Content<JfrRecorderService,&JfrRecorderService::flush>::process+0x16 [<path>\open\src\hotspot\share\jfr\recorder\service\jfrRecorderService.cpp @ 158]
      07 00007ff8`b951f653 : 00000016`907ffb28 00007ff8`b9beb415 00000016`907ffb28 00007ff8`bab44980 : jvm!WriteContent<Content<JfrRecorderService,&JfrRecorderService::flush> >::process+0x17 [<path>\open\src\hotspot\share\jfr\recorder\service\jfrRecorderService.cpp @ 186]
      08 00007ff8`b951f56b : 00000016`907ffb28 00007ff8`b94bf943 000001a2`45033110 000001a2`457b8cc0 : jvm!invoke<WriteContent<Content<JfrRecorderService,&JfrRecorderService::flush> > >+0x13 [<path>\open\src\hotspot\share\jfr\recorder\service\jfrRecorderService.cpp @ 277]
      09 00007ff8`b951df72 : 00000016`907ffb28 000001a2`45033110 00000016`907ffb18 00007ff8`b94e7e4a : jvm!invoke_with_flush_event<WriteContent<Content<JfrRecorderService,&JfrRecorderService::flush> > >+0x2b [<path>\open\src\hotspot\share\jfr\recorder\service\jfrRecorderService.cpp @ 282]
      0a 00007ff8`b951e77f : 00000016`907ffbf8 00007ff8`b951e824 000001a2`45033110 00007ff8`bab6b4b0 : jvm!JfrRecorderService::invoke_flush+0x102 [<path>\open\src\hotspot\share\jfr\recorder\service\jfrRecorderService.cpp @ 672]
      0b 00007ff8`b9522107 : 00000016`907ffbf8 00007ff8`bab6b4b0 00000000`00000001 000001a2`4082adc0 : jvm!JfrRecorderService::flushpoint+0x3f [<path>\open\src\hotspot\share\jfr\recorder\service\jfrRecorderService.cpp @ 682]
      0c 00007ff8`b94ac2b6 : 000001a2`457d3200 000001a2`457d3200 000001a2`00000000 00007ff8`b8fe2971 : jvm!recorderthread_entry+0x187 [<path>\open\src\hotspot\share\jfr\recorder\service\jfrRecorderThreadLoop.cpp @ 85]
      0d 00007ff8`b94ac161 : 000001a2`457d3200 000001a2`407ce3e0 00000000`00100000 00000016`90800000 : jvm!JavaThread::thread_main_inner+0x146 [<path>\open\src\hotspot\share\runtime\javaThread.cpp @ 759]
      0e 00007ff8`b9bd7e4a : 000001a2`457d3200 00007ff8`00000003 000001a2`457d3708 00007ff8`b9bd7bd4 : jvm!JavaThread::run+0x181 [<path>\open\src\hotspot\share\runtime\javaThread.cpp @ 744]
      0f 00007ff8`b999eb09 : 000001a2`457d3200 00000000`00000000 000056ca`b22dc1df 00000000`00000000 : jvm!Thread::call_run+0x18a [<path>\open\src\hotspot\share\runtime\thread.cpp @ 237]
      10 00007ff9`636b1bb2 : 000001a2`457d3200 00000000`00000000 00000000`00000000 00000000`00000000 : jvm!thread_native_entry+0x129 [<path>\open\src\hotspot\os\windows\os_windows.cpp @ 555]
      11 00007ff9`65827344 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : ucrtbase!thread_start<unsigned int (__cdecl*)(void *),1>+0x42
      12 00007ff9`659626b1 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : kernel32!BaseThreadInitThunk+0x14
      13 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : ntdll!RtlUserThreadStart+0x21




            mgronlun Markus Grönlund
            mgronlun Markus Grönlund
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: