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
Hi,
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
compilers.
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.
https://bugs.openjdk.java.net/browse/JDK-8219642
http://cr.openjdk.java.net/~neliasso/8219642/webrev.01/
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