chrishantha / jfr-flame-graph

Get Method Sampling from Java Flight Recorder Dump and convert to FlameGraph compatible format.
Apache License 2.0
265 stars 63 forks source link

Could not load the JFR file with java 1.8 #19

Open JerryYangSH opened 6 years ago

JerryYangSH commented 6 years ago

I am still hitting JFR parse issue. I am sure this is not gzip jfr file. sudo -u storageos /usr/lib64/jvm/java-1.8.0-oracle/bin/jcmd pidof blobsvc JFR.start settings=profile name=blob_test.jfr filename=/var/log/blob_test.jfr duration=60s

provo-tangelo:/usr/lib64/jvm/java-oracle/bin # create_flamegraph.sh -f /var/log/blob_test.jfr -i Could not load the JFR file. If the JFR file is compressed, try the decompress option com.jrockit.mc.flightrecorder.internal.parser.binary.InvalidFlrFileException Exception in thread "main" java.lang.RuntimeException: com.jrockit.mc.flightrecorder.internal.parser.binary.InvalidFlrFileException at com.jrockit.mc.flightrecorder.FlightRecordingLoader.loadFile(FlightRecordingLoader.java:194) at com.github.chrishantha.jfr.flamegraph.output.JFRToFlameGraphWriter.loadRecording(JFRToFlameGraphWriter.java:119) at com.github.chrishantha.jfr.flamegraph.output.JFRToFlameGraphWriter.process(JFRToFlameGraphWriter.java:107) at com.github.chrishantha.jfr.flamegraph.output.Application.main(Application.java:46) Caused by: com.jrockit.mc.flightrecorder.internal.parser.binary.InvalidFlrFileException at com.jrockit.mc.flightrecorder.internal.parser.binary.StringParser.readStringByteCount(StringParser.java:34) at com.jrockit.mc.flightrecorder.internal.parser.binary.StringParser.read(StringParser.java:20) at com.jrockit.mc.flightrecorder.internal.parser.binary.EventParser.loadEvent(EventParser.java:36) at com.jrockit.mc.flightrecorder.internal.parser.binary.EventParserManager.loadEvent(EventParserManager.java:90) at com.jrockit.mc.flightrecorder.internal.parser.binary.ChunkLoader.run(ChunkLoader.java:34) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)

chrishantha commented 6 years ago

What is your Java version? Please give me the output of following command.

sudo -u storageos /usr/lib64/jvm/java-1.8.0-oracle/bin/java -version

JerryYangSH commented 6 years ago

Here is it. provo-tangelo:/opt/storageos/logs # sudo -u storageos /usr/lib64/jvm/java-1.8.0-oracle/bin/java -version java version "1.8.0_161" Java(TM) SE Runtime Environment (build 1.8.0_161-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

provo-tangelo:/opt/storageos/logs # ls -ltrh /var/log/blob_test.jfr -rw-r--r-- 1 storageos storageos 2.2M Sep 27 09:51 /var/log/blob_test.jfr

provo-tangelo:/opt/storageos/logs # file /var/log/blob_test.jfr /var/log/blob_test.jfr: data