JDK-8052170 : G1 asserts at collection exit with -XX:-G1DeferredRSUpdate
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 9
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2014-07-28
  • Updated: 2015-01-21
  • Resolved: 2014-08-08
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 8 JDK 9
8u40Fixed 9 b28Fixed
Related Reports
Duplicate :  
Relates :  
Description
G1 asserts with the following error when deferred RS update is disabled.

# after -XX: or in .hotspotrc:  SuppressErrorAt=/g1GCPhaseTimes.cpp:155
==============================================================================
Unexpected Error
------------------------------------------------------------------------------
Internal Error at g1GCPhaseTimes.cpp:155, pid=3097, tid=140579531847424
assert(_data[i] != _uninitialized) failed: Invalid data for worker 0, data: -1.000000, uninitialized: -1.000000

Do you want to debug the problem?

To debug, run 'gdb /proc/3097/exe 3097'; then switch to thread 140579531847424 (0x00007fdb390ef700)
Enter 'yes' to launch gdb automatically (PATH must include gdb)
Otherwise, press RETURN to abort...
==============================================================================

P5 because G1DeferredRSUpdate is debug only, and needs to be explicitly set.
Comments
The changeset identifies the regression test (via addition of this bugid to the @bugs list) which can be run to find this issue. A "noreg" Label is not necessary.
10-10-2014

Also needs -XX:+PrintGCDetails to reproduce. This is why the test for JDK-8040977 does not fire.
05-08-2014

I=M, assert when running with -G1DeferredRSUpdate L=M, not an entirely uncommon debugging situation is disabling deferred rs updates W=L, -G1DeferredRSUpdate is usually not needed, and the assert can be worked around with SuppressErrorAt for debugging MML=>P4
29-07-2014