RFR(S) 8218700: infinite loop in HotSpotJVMCIMetaAccessContext.fromClass after OutOfMemoryError

Tom Rodriguez tom.rodriguez at oracle.com
Thu May 2 00:44:38 UTC 2019


You'll need to update your webrev after Vladimir's push.  This code has 
moved into HotSpootJVMCIRuntime.java.

Maybe WeakReferenceHolder instead of WeakTypeRef?  It needs a comment 
explaining that we're intentionally avoiding the use of 
ClassValue.remove as well.  Shouldn't the ref field be volatile? 
ClassValue includes some barrier semantics and the new code needs 
similar guarantees.

tom

dean.long at oracle.com wrote on 4/26/19 12:09 PM:
> https://bugs.openjdk.java.net/browse/JDK-8218700
> http://cr.openjdk.java.net/~dlong/8218700/webrev.2/
> 
> If we throw an OutOfMemoryError in the right place (see JDK-8222941), 
> HotSpotJVMCIMetaAccessContext.fromClass can go into an infinite loop 
> calling ClassValue.remove.  To work around the problem, reset the value 
> in a mutable cell instead of calling remove.
> 
> dl


More information about the hotspot-compiler-dev mailing list