JDK-8233279 : G1: GCLocker GC with +GCLockerInvokesConcurrent spins while cycle in progress
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 14
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2019-10-31
  • Updated: 2019-11-21
  • Resolved: 2019-11-13
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 14
14 b24Fixed
Related Reports
Relates :  
Relates :  
Relates :  
Description
When using G1, a GCLocker GC (GCCause::_gc_locker) with the product flag GCLockerInvokesConcurrent turned on (fortunately not the default) will spin in try_collect while there is a concurrent marking cycle already in progress. This will block the JNI critical section exiter, as well as any other threads that are in GCLocker::stall_until_clear().

This is very similar behavior to an old CMS bug (JDK-6919638), though even worse in this case because it's a spin-wait rather than blocking on a monitor.

Comments
URL: https://hg.openjdk.java.net/jdk/jdk/rev/f080b08daace User: kbarrett Date: 2019-11-13 23:14:48 +0000
13-11-2019