Application failure with traversal

Lennart Börjeson lennart.borjeson at cinnober.com
Fri Feb 9 19:09:46 UTC 2018



> 9 feb. 2018 kl. 19:42 skrev Aleksey Shipilev <shade at redhat.com>:
> 
> On 02/09/2018 07:38 PM, Lennart Börjeson wrote:
>> 
>> 
>>> 9 feb. 2018 kl. 19:18 skrev Lennart Börjeson <lennart.borjeson at cinnober.com>:
>>> 
>>> 
>>> 
>>>> 9 feb. 2018 kl. 18:36 skrev Aleksey Shipilev <shade at redhat.com>:
>>>> 
>>>> On 02/09/2018 06:27 PM, Lennart Börjeson wrote:
>>>>>> c) C2: -XX:-TieredCompilation
>>>>> 
>>>>> Fails.
>>>> 
>>>> OK, both good and bad! And that is without any GC cycle happening, right? If so, that must
>>>> definitely point at something gone wrong in C2, which means we can use passive mode, and gradually
>>>> narrow down which part had failed (in order of most probability):
>>>> 
>>>> 0) Run with -XX:-TieredCompilation -XX:ShenandoahGCHeuristics=passive
>>> Runs OK.
>>>> 1) Add -XX:+ShenandoahBarriersForConst
>>> Runs OK.
>>>> 2) Add -XX:+ShenandoahAsmWB
>>> Runs OK.
>>>> 3) Add -XX:+ShenandoahReadBarrier
>>> Fails.
>>>> 4) Add -XX:+ShenandoahWriteBarrier
>>> Fails.
>>>> 5) Add -XX:-ShenandoahWriteBarrierRB
>>> Fails.
>>>> 6) Add -XX:+ShenandoahStoreValEnqueueBarrier
>>> Fails.
>>>> 7) Add -XX:+ShenandoahCASBarrier
>>> Fails.
>>>> 8) Add -XX:+ShenandoahAcmpBarrier
>>> Fails.
>>>> 9) Add -XX:+ShenandoahCloneBarrier
>>> Fails.
>>>> 
>>>> -Aleksey
>>>> 
>>> 
>>> I also ran with all barriers except ReadBarrier enabled, i.e. with -XX:-TieredCompilation -XX:ShenandoahGCHeuristics=passive -XX:+ShenandoahBarriersForConst -XX:+ShenandoahAsmWB -XX:-ShenandoahReadBarrier -XX:+ShenandoahWriteBarrier -XX:-ShenandoahWriteBarrierRB -XX:+ShenandoahStoreValEnqueueBarrier  -XX:+ShenandoahCASBarrier -XX:+ShenandoahAcmpBarrier -XX:+ShenandoahCloneBarrier
>>> 
>>> Run OK.
>> 
>> Sorry, missed a barrier in that test, but enabling ShenandoahWriteBarrierRB didn't cause any failure, i.e. 
>> -XX:-TieredCompilation 
>> -XX:ShenandoahGCHeuristics=passive 
>> -XX:+ShenandoahBarriersForConst 
>> -XX:+ShenandoahAsmWB 
>> -XX:-ShenandoahReadBarrier 
>> -XX:+ShenandoahWriteBarrier 
>> -XX:+ShenandoahWriteBarrierRB 
>> -XX:+ShenandoahStoreValEnqueueBarrier  
>> -XX:+ShenandoahCASBarrier 
>> -XX:+ShenandoahAcmpBarrier 
>> -XX:+ShenandoahCloneBarrier
>> 
>> This test ran OK.
> 
> Ok, minimizing in further, does it fail with RB alone?
> 
>  -XX:-TieredCompilation
>  -XX:ShenandoahGCHeuristics=passive
>  -XX:+ShenandoahReadBarrier
> 
> If not, what is the preceding flags are making it fail, e.g. -XX:+ShenandoahBarriersForConst or
> -XX:+ShenandoahAsmWB?
> 
> -Aleksey

It does not fail with RB alone.

ShenandoahBarriersForConst must be enabled, i.e. these switches FAIL:

/home/tetest/TE/system/jdk/shenandoah/bin/te_cd1 -cp /home/tetest/TE/system/tmp/9.2.0-cd1-shenandoah-b6b99905e2ce9889849423a089815f73.jar  -server -Xms2400M -Xmx4800M -XX:+PrintFlagsFinal -Xlog:gc*=info:stdout:uptime,uptimenanos,timenanos,level,tags --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:-TieredCompilation -XX:ShenandoahGCHeuristics=passive -XX:+ShenandoahBarriersForConst -XX:-ShenandoahAsmWB -XX:+ShenandoahReadBarrier -XX:-ShenandoahWriteBarrier -XX:-ShenandoahWriteBarrierRB -XX:-ShenandoahStoreValEnqueueBarrier -XX:-ShenandoahCASBarrier -XX:-ShenandoahAcmpBarrier -XX:-ShenandoahCloneBarrier -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

/Lennart



More information about the shenandoah-dev mailing list