RFR(S): 8219642: ciReplay loads wrong data when MethodData size changes

Nils Eliasson nils.eliasson at oracle.com
Mon Feb 25 13:16:17 UTC 2019


I stumbled upon this problem when trying to 
reproducehttps://bugs.openjdk.java.net/browse/JDK-8219448on 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 
<https://bugs.openjdk.java.net/browse/JDK-8210832>"Remove sneaky locking 
in class Monitor" caused the problem, at it doesn't even touch the 

The problem is that when ciReplay serializes a ciMethodData it will 
serialize a MethodData as an array preceded 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.



Please review,

Nils Eliasson

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20190225/75fb28a9/attachment.html>

More information about the hotspot-compiler-dev mailing list