JVM crashes constantly when High GC happens

Kim Barrett kim.barrett at oracle.com
Fri Apr 5 23:07:20 UTC 2019


> On Apr 5, 2019, at 4:33 PM, shang xinli <shangxinli at hotmail.com> wrote:
> 
> Thanks Kim! Yes, I agree with you it should be caused by bad objects because of every crash always reported the same invalid address 0x000000008.  This issue only happens when running a tool called smartctl. It is hard to believe a process can corrupt other's process's heap.

smartctl seems to be capable of low-level hardware manipulation, so
who knows what it might be capable of doing to another process,
depending on what one is doing with it.

> Only observation is when smartctl is running, a high IO usage is seen. The Linux IO may use a lot of memory for caching which puts the JVM process memory pressure. But still, I don't understand how it can cause other process's heap corruption. 
> 
> I am very interested in finding patterns and instrumenting the JVM code. Can you explain a little or point me some wiki about "special patterns like 0xdeadbeef “? 

See "Special constants for debugging" in
hotspot/src/share/vm/utilities/globalDefinitions.hpp for some other
examples.   But 0x8 isn’t one of those.

> Also, can you point me where is the code path I can instrument for the path for scanning and pushing object into queue. 

Unfortunately, I don't know the JDK 8 code base very well at all.

Sorry I can't be more help.  Maybe someone else will have ideas.




More information about the hotspot-gc-dev mailing list