JVM crash with stack overflow on 11.0.4 using ZGC

Per Liden per.liden at oracle.com
Mon Sep 30 13:12:39 UTC 2019


Hi Barry,

On 9/27/19 5:52 PM, Barry Galster wrote:
> Hello Per and ZGC experts,
> We have encountered a periodic crash which shares many attributes with this previous posting: http://mail.openjdk.java.net/pipermail/zgc-dev/2018-May/000336.html
> 
> 1. The stack is copied below along with the version information and relevant jvm flags.
> 2. The crash occurs during ~50% of the executions for the past week (we have not yet created a repeatable test harness).
> 3. We will attempt to reproduce the crash with jdk13 and appreciate any other recommendations.

IIRC, we ever managed to reproduce the issue described in the posting 
you link to, which indeed looks like the same issue. If you find a 
reasonably simple reproducer and can share it, that would be great.

A lot of stuff happened in this area in JDK 12 and 13, so it's possible 
you will have better luck with a later release.

I can also mention that we're in the process of completely reworking how 
this code (the load barriers generated by C2) works. That patch removes 
the code you're crashing in here so it should definitely solve this 
particular issue, and it will in general make the C2 load barrier 
generation a lot more robust. Once that patch has gone into the master 
JDK repo, we'll take a look at how far back we can/should backport it.

cheers,
Per

> 
> Regards,
> Barry
> 
> --
> ZGC/memory JVM flags:
> -server -Xms64G -Xmx64G -Xmn3G -XX:+UnlockExperimentalVMOptions -XX:+UseZGC -XX:+AlwaysPreTouch -XX:ConcGCThreads=12 -XX:+UseLargePages -XX:LargePageSizeInBytes=2m -XX:ZPath=/dev/hugepages -XX:+UseCodeCacheFlushing -Xlog:gc*=info,gc+age=trace,safepoint=debug:file=gc.log:time,level,tags
> 
> openjdk version "11.0.4" 2019-07-16
> OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.4+11)
> OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.4+11, mixed mode)
> 
> Program terminated with signal 11, Segmentation fault.
> 
> #0  0x00007fc1557f9881 in _dl_update_slotinfo () from /lib64/ld-linux-x86-64.so.2
> #1  0x00007fc1557e8078 in update_get_addr () from /lib64/ld-linux-x86-64.so.2
> #2  0x00007fc1557fe928 in __tls_get_addr () from /lib64/ld-linux-x86-64.so.2
> #3  0x00007fc153e08e40 in LoadBarrierNode::bottom_type() const () from /opt/openjdk-11.0.4/lib/server/libjvm.so
> #4  0x00007fc153b57abf in ProjNode::bottom_type() const () from /opt/openjdk-11.0.4/lib/server/libjvm.so
> #5  0x00007fc153e08eba in LoadBarrierNode::bottom_type() const () from /opt/openjdk-11.0.4/lib/server/libjvm.so
> #6  0x00007fc153b57abf in ProjNode::bottom_type() const () from /opt/openjdk-11.0.4/lib/server/libjvm.so
> ...
> ...
> these two lines repeat ~25k times until the bottom of the stack:
> 
> #25290 0x00007fc153b57abf in ProjNode::bottom_type() const () from /opt/openjdk-11.0.4/lib/server/libjvm.so
> #25291 0x00007fc153e08eba in LoadBarrierNode::bottom_type() const () from /opt/openjdk-11.0.4/lib/server/libjvm.so
> #25292 0x00007fc153b57abf in ProjNode::bottom_type() const () from /opt/openjdk-11.0.4/lib/server/libjvm.so
> #25293 0x00007fc153e08eba in LoadBarrierNode::bottom_type() const () from /opt/openjdk-11.0.4/lib/server/libjvm.so
> #25294 0x00007fc153b57abf in ProjNode::bottom_type() const () from /opt/openjdk-11.0.4/lib/server/libjvm.so
> #25295 0x00007fc153c03503 in PhaseIterGVN::register_new_node_with_optimizer(Node*, Node*) () from /opt/openjdk-11.0.4/lib/server/libjvm.so
> #25296 0x00007fc153e082c6 in clone_load_barrier(PhaseIdealLoop*, LoadBarrierNode*, Node*, Node*, Node*) () from /opt/openjdk-11.0.4/lib/server/libjvm.so
> #25297 0x00007fc153e1225d in ZBarrierSetC2::loop_optimize_gc_barrier(PhaseIdealLoop*, Node*, bool) () from /opt/openjdk-11.0.4/lib/server/libjvm.so
> #25298 0x00007fc153a5964f in PhaseIdealLoop::split_if_with_blocks(VectorSet&, Node_Stack&, bool) () from /opt/openjdk-11.0.4/lib/server/libjvm.so
> #25299 0x00007fc153a53216 in PhaseIdealLoop::build_and_optimize(bool, bool, bool) () from /opt/openjdk-11.0.4/lib/server/libjvm.so
> #25300 0x00007fc1535db4a3 in Compile::Optimize() () from /opt/openjdk-11.0.4/lib/server/libjvm.so
> #25301 0x00007fc1535dc96a in Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool, DirectiveSet*) () from /opt/openjdk-11.0.4/lib/server/libjvm.so
> #25302 0x00007fc1534f26bc in C2Compiler::compile_method(ciEnv*, ciMethod*, int, DirectiveSet*) () from /opt/openjdk-11.0.4/lib/server/libjvm.so
> #25303 0x00007fc1535e6a2d in CompileBroker::invoke_compiler_on_method(CompileTask*) () from /opt/openjdk-11.0.4/lib/server/libjvm.so
> #25304 0x00007fc1535e81d8 in CompileBroker::compiler_thread_loop() () from /opt/openjdk-11.0.4/lib/server/libjvm.so
> #25305 0x00007fc153d69423 in JavaThread::thread_main_inner() () from /opt/openjdk-11.0.4/lib/server/libjvm.so
> #25306 0x00007fc153d696f5 in JavaThread::run() () from /opt/openjdk-11.0.4/lib/server/libjvm.so
> #25307 0x00007fc153d653aa in Thread::call_run() () from /opt/openjdk-11.0.4/lib/server/libjvm.so
> #25308 0x00007fc153badc9e in thread_native_entry(Thread*) () from /opt/openjdk-11.0.4/lib/server/libjvm.so
> #25309 0x00007fc155120dd5 in start_thread () from /lib64/libpthread.so.0
> #25310 0x00007fc154a34ead in clone () from /lib64/libc.so.6
> 
> Barry Galster
> Performance Engineer - Team Lead
> T +13122047574
> E Barry.Galster at imc.com<mailto:Barry.Galster at imc.com>
> 233 South Wacker Drive # 4250,
> Chicago, Illinois 60606, US
> [IMC Logo]<https://www.imc.com/us/>
> 
> [F]<https://www.facebook.com/IMCTrading>
> 
> 
> [t]<http://twitter.com/IMCTrading>
> 
> 
> [I]<https://www.instagram.com/imctrading/>
> 
> 
> [in]<https://www.linkedin.com/company/imc-financial-markets>
> 
> 
> imc.com<https://www.imc.com/us/>
> 
> 
> 
> ________________________________
> 
> The information in this e-mail is intended only for the person or entity to which it is addressed.
> 
> It may contain confidential and /or privileged material, the disclosure of which is prohibited. Any unauthorized copying, disclosure or distribution of the information in this email outside your company is strictly forbidden.
> 
> If you are not the intended recipient (or have received this email in error), please contact the sender immediately and permanently delete all copies of this email and any attachments from your computer system and destroy any hard copies. Although the information in this email has been compiled with great care, neither IMC nor any of its related entities shall accept any responsibility for any errors, omissions or other inaccuracies in this information or for the consequences thereof, nor shall it be bound in any way by the contents of this e-mail or its attachments.
> 
> Messages and attachments are scanned for all known viruses. Always scan attachments before opening them.
> 


More information about the zgc-dev mailing list