Identifying if the race condition exists

Enable trace points to check for situations in which no dump is produced after a crash.

About this task

Check for the situations in which no dump is produced after a crash by enabling trace points near the shut down of the Java™ runtime environment. If the trace points overlap with the crash condition, you have confirmation that the race condition occurred. The tracepoints in the protectedDestroyJavaVM are the last to be triggered before the main thread returns.


  1. Find the protectedDestroyJavaVM function tracepoints in the J9TraceFormat.dat file by using the instructions in Determining the tracepoint ID of a tracepoint.
  2. When you have the tracepoint IDs, rerun the failing scenario with those tracepoints sent to the console.
    The results are similar to the following output:
    java -Xtrace:print=tpnid{j9vm.381-394} MyApp
    11:10:09.421*0x42cc1a00            j9vm.385      > protectedDestroyJavaVM
    11:10:09.421 0x42cc1a00            j9vm.386      - protectedDestroyJavaVM waiting for Java threads to 
    11:10:09.421 0x42cc1a00            j9vm.387      - protectedDestoryJavaVM all Java threads have stopped
    11:10:09.421 0x42cc1a00            j9vm.388      - protectedDestroyJavaVM protectedDestroyJavaVM 
    vmCleanup complete
    11:10:09.421 0x42cc1a00            j9vm.389      - protectedDestroyJavaVM VM Shutting Down Hook Fired
    Unhandled exception
    Type=Segmentation error vmState=0x00000000
    J9Generic_Signal_Number=00000004 ExceptionCode=c0000005 ExceptionAddress=430514BE ContextFlags=0001003f
    Handler1=7FEE9C40 Handler2=7FEC98C0 InaccessibleAddress=00000000
    EDI=000A70A0 ESI=432235D8 EAX=00000000 EBX=00192684
    ECX=00000001 EDX=4368FECC
    EIP=430514BE ESP=4368FED4 EBP=4368FED8 EFLAGS=00010246
    Module_base_address=43050000 Offset_in_DLL=000014be
    11:10:09.421 0x42cc1a00            j9vm.390      - Target=2_40_20081203_026494_lHdSMr (Windows XP 5.1 
    build 2600 Service Pack 2)
    protectedDestroyJavaVM GC HeapManagement ShutdownCPU=x86 (2 logical CPUs) (0x7fe6b000 RAM)
    11:10:09.421 0x42cc1a00            j9vm.391      - protectedDestroyJavaVM vmShutdown returned
    11:10:09.421 0x42cc1a00            j9vm.393      - protectedDestroyJavaVM terminateRemainingThreads failed
    The Unhandled exception message is printed after the first tracepoints for the protectedDestroyJavaVM function. This output shows that the crash occurred very late in the life of the Java runtime environment, and that enough time remained to produce the dump files before the process ended.

What to do next

When you confirm that a race condition has occurred, you might still be able to obtain a system dump file. For more information, see Obtaining system dump files in a race condition.