RFR(S): 8200466: Revisit the setting of _transitive_interfaces in InstanceKlass

Ioi Lam ioi.lam at oracle.com
Fri Apr 27 19:27:36 UTC 2018


Hi Calvin,

The changes look good.

Thanks

- Ioi


On 4/26/18 9:46 PM, Calvin Cheung wrote:
> JBS: https://bugs.openjdk.java.net/browse/JDK-8200466
>
> webrev: http://cr.openjdk.java.net/~ccheung/8200466/webrev.00/
>
> This bug was discovered during the investigation of JDK-8200078 
> <https://bugs.openjdk.java.net/browse/JDK-8200078>.
>
> I've included the following comment in classFileParser.cpp to 
> summarize the change:
>
> // Delay the setting of _transitive_interfaces until after 
> initialize_supers() in
> // fill_instance_klass(). It is because the _transitive_interfaces may 
> be shared with
> // its _super. If an OOM occurs while loading the current klass, its 
> _super field
> // may not have been set. When GC tries to free the klass, the 
> _transitive_interfaces
> // may be deallocated mistakenly in 
> InstanceKlass::deallocate_interfaces(). Subsequent
> // dereferences to the deallocated _transitive_interfaces will result 
> in a crash.
>
> Testing: (on Oracle platforms)
>     hs-tier{1,2,3}
>     closed (soon will be open) PCL (parallel class loading) tests
>
> thanks,
> Calvin



More information about the hotspot-runtime-dev mailing list