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

Edward Nevill edward.nevill at gmail.com
Thu Jun 30 12:56:16 UTC 2016


Hi Andrew,


On Wed, 2016-06-22 at 19:22 +0100, Andrew Haley wrote:
> This bogus NullPointerException happens because nodes are cloned from
> a block into its successors by PhaseCFG::call_catch_cleanup.  When the
> clone is performed we don't do an anti-dependence check, so scheduling
> is free to move a store even above a load which has an anti-dependence.

Well done on finding this!

We had previously disabled the use of FP as an allocatable register because we thought this was the cause of the problem. The problem seemed to start happening with the introduction of FP as an allocatable register.w

See the following JBS/change

https://bugs.openjdk.java.net/browse/JDK-8148240

http://hg.openjdk.java.net/jdk9/hs-comp/hotspot/rev/ec13f1d4a9d3

However, it looks like this was just shifting the furniture around and made the problem go away for it to reappear later.

Could we re-introduce the use of FP as an allocatable register now?

All the best,
Ed.



More information about the hotspot-dev mailing list