JDK-8275347 : ciReplay: staticfield lines not properly terminated
Type:Bug
Component:hotspot
Sub-Component:compiler
Affected Version:17,18
Priority:P4
Status:Resolved
Resolution:Fixed
Submitted:2021-10-15
Updated:2021-11-11
Resolved:2021-10-21
The Version table provides details related to the release that this issue/RFE will be addressed.
Unresolved : Release in which this issue/RFE will be addressed. Resolved: Release in which this issue/RFE has been resolved. Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.
[~epavlova] has a test case where a static field with an empty string results in a line like the following:
staticfield TestKatya emptyString Ljava/lang/String; “”ciMethod TestKatya m1 ()V 3328 0 6784 0 -1
Comments
Changeset: 0961de47
Author: Dean Long <dlong@openjdk.org>
Date: 2021-10-21 19:02:38 +0000
URL: https://git.openjdk.java.net/jdk/commit/0961de47de1bf4379089e010978bcb4708fde767
21-10-2021
ILW = staticfield lines not properly terminated in replay files, only a problem when replay compiling, no workaround = MLH = P4
18-10-2021
To run the test do:
export VMARGS="-XX:-TieredCompilation -XX:+AlwaysIncrementalInline -Xbatch -XX:CompileCommand=option,TestReplay01::*,DumpReplay"
1) generate 1st replay file
> $JAVA_HOME/bin/java $VMARGS TestReplay01
2) run replay file from step 1 and generate new replay file
> $JAVA_HOME/bin/java $VMARGS -XX:+ReplayCompiles -XX:ReplayDataFile=replay_pid<PID>_compid1.log
3) compare replay file from the step 1 and 2
Here the diff for my replay files:
> diff replay_pid1_compid1.log replay_pid2_compid1.log |grep -v instance
579,581c579,581
< staticfield TestReplay01 emptyString Ljava/lang/String; ""ciMethod TestReplay01 m1 ()V 3328 0 6784 0 -1
< ciMethod TestReplay01 m2 ()V 3328 0 6783 0 0
< ciMethod TestReplay01 m3 ()V 3328 0 6783 0 0
---
> staticfield TestReplay01 emptyString Ljava/lang/String; ""ciMethod TestReplay01 m1 ()V 0 0 1 0 -1
> ciMethod TestReplay01 m2 ()V 3328 0 6783 0 -1
> ciMethod TestReplay01 m3 ()V 3328 0 6783 0 -1