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

JEP 146: Improve Fatal Error Logs

    XMLWordPrintable

    Details

    • Type: JEP
    • Status: Closed
    • Priority: P4
    • Resolution: Withdrawn
    • Fix Version/s: None
    • Component/s: hotspot
    • Labels:
      None
    • Author:
      Tom Rodriguez
    • JEP Type:
      Feature
    • Exposure:
      Open
    • Subcomponent:
    • Scope:
      Implementation
    • Discussion:
      hostspot dash dev at openjdk dot java dot net
    • Effort:
      S
    • Duration:
      S
    • JEP Number:
      146

      Description

      Summary

      Improve HotSpot's fatal error logs (hs_err files) by including additional historical information and also some context-dependent information.

      Motivation

      Fatal error logs are a critical tool for triaging bugs. Adding more useful information to them may allow bugs to be evaluated more quickly.

      Description

      This project has provided a set of classes that are used to store information that is put into the crash dump in the case of a crash.

      EventLog is the base event log dumping class that is registered for dumping at crash time. EventLog is a very generic interface that normally shouldn't be used directly, but rather through its subclasses.

      The EventLogBase is a template subclass of EventLog that provides basic ring buffer functionality. Most event loggers should subclass this, possibly providing a more featureful log function if the existing copy semantics aren't appropriate. The provided name is used as the label of the log when it is dumped during a crash.

      The information that has been added to the crash dump is for instance historical information of recent compilation and GC history. Context-dependent information includes, for example, what bytecode is being processed and what the inline tree looks like when a crash occurs during compilation.

      Two new flags was added to control the event log:

      -XX:LogEvents={true/false} Enable the various ring buffer event logs. Defaults to true.

      -XX:LogEventsBufferEntries=n Set the size of the ring buffer. Defaults to 10.

      Testing

      Exercising this code will require causing crashes in various contexts, so initially some forced crashing may be required.

        Attachments

          Activity

            People

            Assignee:
            Unassigned Unassigned
            Reporter:
            never Tom Rodriguez
            Owner:
            Tom Rodriguez Tom Rodriguez
            Reviewed By:
            Jesper Wilhelmsson
            Endorsed By:
            Mikael Vidstedt
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: