Eclipse OpenJ9: A Java Virtual Machine for OpenJDK that's optimized for small footprint, fast start-up, and high throughput. Builds on Eclipse OMR (https://github.com/eclipse/omr) and combines with the Extensions for OpenJDK for OpenJ9 repo.
Other
3.28k
stars
721
forks
source link
Feature request: throw runtime exception instead of abort in jdk.internal.perf.Perf #17366
In cloud environments, sysdig commonly drives this which drives an abort that produces diagnostics such as core dumps, javacores, etc., but then sysdig restarts on an interval and continuously causes this crash which can then fill up disk space on the worker node and cause an outage.
Java -version output
Seen for 3 different users so far. One example from TS012712861:
Summary of problem
In cloud environments,
sysdig
commonly drives this which drives an abort that produces diagnostics such as core dumps, javacores, etc., but then sysdig restarts on an interval and continuously causes this crash which can then fill up disk space on the worker node and cause an outage.Example sysdig stack
``` 1TISIGINFO Dump Event "abort" (00020000) received [...] 3XMTHREADINFO "main" J9VMThread:0x0000000000014200, omrthread_t:0x00007F005C006F50, java/lang/Thread:0x00000000E00229F8, state:R, prio=5 3XMJAVALTHREAD (java/lang/Thread getId:0x1, isDaemon:false) 3XMJAVALTHRCCL sun/misc/Launcher$AppClassLoader(0x00000000E001E148) 3XMTHREADINFO1 (native thread ID:0x16E0, native priority:0x5, native policy:UNKNOWN, vmstate:R, vm thread flags:0x00000020) 3XMTHREADINFO2 (native stack address range from:0x00007F0063CC5000, to:0x00007F00644C5000, size:0x800000) 3XMCPUTIME CPU usage total: 0.431007100 secs, current category="Application" 3XMHEAPALLOC Heap bytes allocated since last GC cycle=1331432 (0x1450E8) 3XMTHREADINFO3 Java callstack: 4XESTACKTRACE at sun/misc/Perf.attach(Native Method) 4XESTACKTRACE at sun/misc/Perf.attachImpl(Perf.java:282) 4XESTACKTRACE at sun/misc/Perf.attach(Perf.java:212) 4XESTACKTRACE at sun/jvmstat/perfdata/monitor/protocol/local/PerfDataBuffer.The workaround is to disable JMX polling in sysdig: https://docs.sysdig.com/en/docs/sysdig-monitor/integrations/working-with-integrations/custom-integrations/integrate-jmx-metrics-from-java-virtual-machines/#disabling-jmx-polling
Could a RuntimeException be thrown instead of an abort to avoid creating all of the crash files?
https://github.com/eclipse-openj9/openj9/blob/b975e8202c2d9d7b709bff8b9140cd98c836f5a3/runtime/jcl/common/sun_misc_Perf.c#L43