Application failure with traversal
Lennart Börjeson
lennart.borjeson at cinnober.com
Fri Feb 9 20:18:59 UTC 2018
Thank you both, too! ...then I just take the dog for her walk...
Best regards,
/Lennart
> 9 feb. 2018 kl. 21:16 skrev Roman Kennke <rkennke at redhat.com>:
>
> Ok,I see. This needs a little more work then. I think for now we have
> enough information to proceed. There are two things that need to be
> done:
>
> - Get traversal to work without barriers on constants. This will most
> likely fix your original NPE, and also provide a nice performance
> boost.
> - Get it to work *with* barriers on constants too. This will probably
> be needed for concurrent code cache scanning, which will enhance pause
> times. (Code cache scanning is currently our worst offender during the
> pauses.)
>
> Thank you for testing and testing and testing again, and all your
> patience! We will get back to you once we know more.
>
> Cheers, Roman
>
>
> On Fri, Feb 9, 2018 at 9:11 PM, Lennart Börjeson
> <lennart.borjeson at cinnober.com> wrote:
>>
>>> 9 feb. 2018 kl. 20:24 skrev Roman Kennke <rkennke at redhat.com>:
>>>
>>> diff --git a/src/hotspot/share/gc/shenandoah/shenandoahCollectorPolicy.cpp
>>> b/src/hotspot/share/gc/shenandoah/shenandoahCollectorPolicy.cpp
>>> --- a/src/hotspot/share/gc/shenandoah/shenandoahCollectorPolicy.cpp
>>> +++ b/src/hotspot/share/gc/shenandoah/shenandoahCollectorPolicy.cpp
>>> @@ -1308,7 +1308,6 @@
>>> FLAG_SET_DEFAULT(ShenandoahStoreValEnqueueBarrier, true);
>>> FLAG_SET_DEFAULT(ShenandoahKeepAliveBarrier, false);
>>> FLAG_SET_DEFAULT(ShenandoahAsmWB, true);
>>> - FLAG_SET_DEFAULT(ShenandoahBarriersForConst, true);
>>> FLAG_SET_DEFAULT(ShenandoahWriteBarrierRB, false);
>>> FLAG_SET_DEFAULT(ShenandoahAllocImplicitLive, false);
>>> }
>>
>> I can't seem to get that patch to apply?
>>
>> patching file src/hotspot/share/gc/shenandoah/shenandoahCollectorPolicy.cpp
>> Hunk #1 FAILED at 1308.
>> 1 out of 1 hunk FAILED -- saving rejects to file src/hotspot/share/gc/shenandoah/shenandoahCollectorPolicy.cpp.rej
>>
>>
>> Anyway, I just commented out that line manually:
>>
>> diff -r 16f17f40cecf src/hotspot/share/gc/shenandoah/shenandoahCollectorPolicy.cpp
>> --- a/src/hotspot/share/gc/shenandoah/shenandoahCollectorPolicy.cpp Thu Feb 08 13:24:03 2018 +0100
>> +++ b/src/hotspot/share/gc/shenandoah/shenandoahCollectorPolicy.cpp Fri Feb 09 20:50:36 2018 +0100
>> @@ -1308,7 +1308,7 @@
>> FLAG_SET_DEFAULT(ShenandoahStoreValEnqueueBarrier, true);
>> FLAG_SET_DEFAULT(ShenandoahKeepAliveBarrier, false);
>> FLAG_SET_DEFAULT(ShenandoahAsmWB, true);
>> - FLAG_SET_DEFAULT(ShenandoahBarriersForConst, true);
>> + // FLAG_SET_DEFAULT(ShenandoahBarriersForConst, true);
>> FLAG_SET_DEFAULT(ShenandoahWriteBarrierRB, false);
>> FLAG_SET_DEFAULT(ShenandoahAllocImplicitLive, false);
>> }
>>
>>
>> Anyway, with this change I don't get an NPE, but the application JVM crashes with this:
>>
>>
>> # A fatal error has been detected by the Java Runtime Environment:
>> #
>> # Internal Error (/home/lennartb/shenandoah-jdk10/src/hotspot/share/opto/split_if.cpp:173), pid=39409, tid=39425
>> # assert(u_ctrl != blk1 && u_ctrl != blk2) failed: won't converge
>> #
>> # JRE version: OpenJDK Runtime Environment (10.0) (fastdebug build 10-internal+0-adhoc.lennartb.shenandoah-jdk10)
>> # Java VM: OpenJDK 64-Bit Server VM (fastdebug 10-internal+0-adhoc.lennartb.shenandoah-jdk10, mixed mode, tiered, compressed oops, Shenandoah gc, linux-amd64)
>> # Core dump will be written. Default location: /home/tetest/TE/system/cd1/core.39409
>> #
>> # If you would like to submit a bug report, please visit:
>> # http://bugreport.java.com/bugreport/crash.jsp
>> #
>>
>> --------------- S U M M A R Y ------------
>>
>> Command Line: -Xms2400M -Xmx4800M -XX:+PrintFlagsFinal -Xlog:gc*=info,safepoint*=info,vmoperation*=trace:stdout:uptime,uptimenanos,timenanos,level,tags -XX:+UnlockExperimentalVMOptions -XX:SyncKnobs=Verbose=1 -XX:+PrintSafepointStatistics -XX:PrintSafepointStatisticsCount=1 -XX:+SafepointTimeout -XX:SafepointTimeoutDelay=1 --add-modules=java.xml.bind --add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED --add-exports=java.base/sun.nio.ch=ALL-UNNAMED -XX:+UseShenandoahGC -XX:ConcGCThreads=8 -XX:ParallelGCThreads=4 -XX:MonitorBound=20000 -XX:-UseBiasedLocking -XX:+DoEscapeAnalysis -XX:+UseNUMA -XX:+UnlockExperimentalVMOptions -XX:ShenandoahGCHeuristics=traversal -DRoundRobinPrio=0 -DHibernate3=true -DdumpConfig=VALUE -Djava.net.preferIPv4Stack=true -Djava.util.prefs.systemRoot=/home/tetest com.cinnober.framework.server.impl.FwStart --stdouttolog --stderrtolog -s CD1 -r http://frank-10g.cinnober.com:22780 -i TE -v com.cinnober.common.version.TeVersion
>>
>> Host: frank.cinnober.com, Intel(R) Xeon(R) CPU E5-2687W v4 @ 3.00GHz, 48 cores, 503G, CentOS Linux release 7.3.1611 (Core)
>> Time: Fri Feb 9 21:08:28 2018 CET elapsed time: 41 seconds (0d 0h 0m 41s)
>>
>> --------------- T H R E A D ---------------
>>
>> Current thread (0x00007f7d6039e4a0): JavaThread "C2 CompilerThread0" daemon [_thread_in_native, id=39425, stack(0x00007f7d114f6000,0x00007f7d115f7000)]
>>
>>
>> Current CompileTask:
>> C2: 41043 9019 4 com.mysql.jdbc.StringUtils::getInt (283 bytes)
>>
>> Stack: [0x00007f7d114f6000,0x00007f7d115f7000], sp=0x00007f7d115f02b0, free space=1000k
>> Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
>> V [libjvm.so+0x18af9ef] VMError::report_and_die(int, char const*, char const*, __va_list_tag*, Thread*, unsigned char*, void*, void*, char const*, int, unsigned long)+0x15f
>> V [libjvm.so+0x18b082a] VMError::report_and_die(Thread*, char const*, int, char const*, char const*, __va_list_tag*)+0x4a
>> V [libjvm.so+0xb15bca] report_vm_error(char const*, int, char const*, char const*, ...)+0xea
>> V [libjvm.so+0x17373ee] PhaseIdealLoop::split_up(Node*, Node*, Node*) [clone .part.131]+0xe2e
>> V [libjvm.so+0x1739c01] PhaseIdealLoop::do_split_if(Node*)+0x8d1
>> V [libjvm.so+0x114dcfb] PhaseIdealLoop::split_if_with_blocks_post(Node*)+0xf8b
>> V [libjvm.so+0x114ddab] PhaseIdealLoop::split_if_with_blocks(VectorSet&, Node_Stack&)+0xab
>> V [libjvm.so+0x11445f4] PhaseIdealLoop::build_and_optimize(LoopOptsMode)+0x1494
>> V [libjvm.so+0xa79f20] Compile::optimize_loops(int&, PhaseIterGVN&, LoopOptsMode)+0x100
>> V [libjvm.so+0xa82aa2] Compile::Optimize()+0xe42
>> V [libjvm.so+0xa84350] Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool, DirectiveSet*)+0x1460
>> V [libjvm.so+0x8c41c3] C2Compiler::compile_method(ciEnv*, ciMethod*, int, DirectiveSet*)+0x123
>> V [libjvm.so+0xa9142d] CompileBroker::invoke_compiler_on_method(CompileTask*)+0x35d
>> V [libjvm.so+0xa924d8] CompileBroker::compiler_thread_loop()+0x3b8
>> :
>>
>>
More information about the shenandoah-dev
mailing list