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

ciReplay loads wrong data when MethodData size changes

    Details

    • Subcomponent:
    • Introduced In Version:
      13
    • Resolved In Build:
      b12

      Description

      I stumbled upon this problem when trying to reproduce https://bugs.openjdk.java.net/browse/JDK-8219448 on JDK 13. The crash was recorded on a late 12 build, but the issue doesn't reproduce on 13. A bisection revealed that JDK-8210832 "Remove sneaky locking in class Monitor" caused the problem, at it doesn't even touch the compilers.

      The problem is that when ciReplay serializes a ciMethodData it will serialize a MethodData as an array precceded by the size.
      But a MethodData contains an inlined Mutex, and its size changed with the removal of sneaky locking.

      This fix adds code for detecting a size change of MethodData, and tries to recover by adding padding or dropping data. Since all non significant serialization data are in the beginning, the padding or dropping of data is done from the start.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                neliasso Nils Eliasson
                Reporter:
                neliasso Nils Eliasson
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: