RFR(S): 8219642: ciReplay loads wrong data when MethodData size changes
vladimir.kozlov at oracle.com
Mon Feb 25 18:10:16 UTC 2019
Is it happening because different version of VM is used for replay? Or different flags?
ciReplay doesn't support mixing different versions because of differences in data.
What information is removed in MD? we should not remove any profiling information and traps information.
On 2/25/19 5:16 AM, Nils Eliasson wrote:
> 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.
> Please review,
> Nils Eliasson
More information about the hotspot-compiler-dev