On 2019-10-24 16:52, Yasumasa Suenaga wrote:
On 2019/10/24 22:50, Erik Gahlin wrote:
Hi Yasumasa,
The DumpJFR tool relied on SA, which was too much of a burden to
maintain (slowing down the development of new JFR features).
I think tool was removed in Oracle JDK 9, at least it was completely
broken at that time.
Functionality has been added that allows JFR to dump an emergency
dump if the JVM crashes. This reduces the need for a separate tool.
SA is powerful tool for hung up and for postmortem analysis.
For example, SA is only way to gather any information even if Attach
Listener does not respond.
There are always trade-offs, and with the crash dump support in place,
we came to the conclusion that the cost of maintaining the tool and SA
support outweighed the benefits.
JFR emergency dump is not enough.
I commented in JDK-8213435, crash which is caused by
-XX:+CrashOnOutOfMemoryError does not contain
recently old object sampling.
Duplicating logic in the SA tool to calculate shortest path GC,
information about root objects etc. would be a much larger effort to
implement and maintain than fixing JDK-8213435.
In addition, there are some cases not to be called crash handler (e.g.
native stack overflow).
The Event Streaming JEP, targeted for JDK 14, should also help out
here, as it ensures the latest file in the disk repository,
previously known as the .part file, can always read. With a default
flush interval of 1 second, data will be available very close to the
point of the crash.
Is flight record flushed to the disk without any programming for Event
Streaming?
I guess it is just about Event Stream API.
I hope to get flight record with some configuration - not any
programming.
Streaming will be always on. No programming or configuration will be needed.
You can just open the latest file in JMC.
Best regards,
Erik
Thanks,
Yasumasa
Best regards,
Erik
Hi all,
DumpJFR tool is introduced in JDK 8u60 [1], however it is not
available on OpenJDK (JDK 11 or later).
Why it is not open sourced?
I think DumpJFR is very useful not only for postmortem analysis but
also analyzing process hung up.
If DumpJFR is available on OpenJDK, I believe JFR will be more
useful for troubleshooting.
Thanks,
Yasumasa
[1]
https://www.oracle.com/technetwork/java/javase/8u60-relnotes-2620227.html