JDK-2190161 : G1: assert(new_obj != 0 || ... "should be forwarded")
  • Type: Backport
  • Backport of: JDK-6755988
  • Component: hotspot
  • Sub-Component: gc
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2010-03-12
  • Updated: 2013-09-18
  • Resolved: 2011-04-23
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.
Other
hs17 b12Fixed
Description
Various nightly test failures caused by a bad oop.

Comments
EVALUATION We allocate a TLAB that is larger than the humongous threshold causing the region to be tagged as starting a humongous object. A series of smaller objects is then allocated from the TLAB. The objects in the TLAB are correctly marked because the marking code follows object references. The G1 MarkSweep code that copies objects to their new locations assumes that a humongous region set is dedicated to a single humongous object starting at base of the "startsHumongous" region. This forwards the object at the base of the TLAB to itself whil ignoring subsequent objects in the TLAB. When we come to fix up the pointers we detect that the subsequent objects in the TLAB have not been forwarded and so it looks like a bad oop.
15-03-2010

SUGGESTED FIX Ensure that TLABs cannot be considered humongous objects causing the region in which the TLAB is allocated to be tagged as "startsHumongous".
15-03-2010