RFD: C2 bug: 8157306 random infrequent null pointer exceptions in javac

Vladimir Kozlov vladimir.kozlov at oracle.com
Sat Jun 25 03:04:45 UTC 2016


The assert you added is "good" :)

It found several problems but I am not sure if they are real or we can't call insert_anti_dependences() there.

#  Internal Error (/opt/jprt/T/P1/223700.vkozlov/s/hotspot/src/share/vm/opto/gcm.cpp:417), pid=5717, tid=5738
#  assert(early->dominates(LCA)) failed: early is high enough

#  Internal Error (/opt/jprt/T/P1/223700.vkozlov/s/hotspot/src/share/vm/opto/gcm.cpp:748), pid=6805, tid=6814
#  assert(store->find_edge(load) != -1) failed: missing precedence edge

V  [libjvm.so+0x6b700c]  report_vm_error(char const*, int, char const*, char const*, ...)+0xe0
V  [libjvm.so+0x863710]  PhaseCFG::insert_anti_dependences(Block*, Node*, bool)+0x1634
V  [libjvm.so+0x37e074]  PhaseCFG::verify() const+0x424
V  [libjvm.so+0x630734]  Compile::Code_Gen()+0x2cc
V  [libjvm.so+0x633ccc]  Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool, DirectiveSet*)+0xe2c

hotspot/test/gc/g1/humongousObjects/TestHumongousClassLoader.java
hotspot/test/gc/g1/plab/TestPLABEvacuationFailure.java
hotspot/test/runtime/Metaspace/FragmentMetaspace.java

and others.

May be needed run with -Xcomp to trigger failures.

Thanks,
Vladimir

On 6/24/16 3:37 PM, Vladimir Kozlov wrote:
> Looks good. I submitted testing and will push if testing pass.
>
> Thanks,
> Vladimir
>
> On 6/23/16 9:18 AM, Andrew Haley wrote:
>> On 22/06/16 22:13, Vladimir Kozlov wrote:
>>> Thank you, Andrew, for finding the cause of this problem.
>>> Your fix looks good to me. Can you also add changes for the assert you mentioned - I think it is useful.
>>> And, please, prepare webrev.
>>
>> http://cr.openjdk.java.net/~aph/8157306.1/
>>
>> There is no point putting an assert in call_catch_cleanup()
>> immediately after we insert the precedence edges.  I think it is best
>> to put the assert in verify_cfg(), where it makes the most sense.  I
>> had to make verify_anti_dependences() const in order to call it from
>> verify_cfg().  I hope this is OK.
>>
>> Thanks,
>>
>> Andrew.
>>


More information about the hotspot-dev mailing list