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

JFR: Incorrect duration after chunk rotation

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • P2
    • 20
    • 20
    • hotspot
    • None
    • jfr
    • b27
    • Verified

    Description

      When the JVM rotates to a new chunk, a notified flag is set. This is so an ongoing Java event can redo the event with a stack trace ID that is present in the new chunk. This means the logic in the commit method is executed twice.

      Currently there is a check if the startTime has been set.

      In the first iteration, it's zero, indicating an event without a duration.

      In the second iteration, it's no longer zero, and the code incorrectly assumes this was because the user called begin(), so it complete the event with a duration. This leads to events with a small duration, typically a few microseconds.

      This is a regression introduced in JDK 19. See JDK-8282420 JFR: Remove event handlers. Previously the repetition happened in a separate method, meaning the startTime was a new stack variable instead of a field value, so it never occurred.

      Impact: Medium, no dataloss but could potentially break program that expects the duration to be zero.
      Likelihood: High, likely to happen in a longer recording if JFR is being used
      Workaround: High, no known workaround

      MHH => P2

      Attachments

        Issue Links

          Activity

            People

              egahlin Erik Gahlin
              egahlin Erik Gahlin
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: