JDK-7041440 : G1: assert(obj->is_oop_or_null(true )) failed: Error #
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: hs21
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2011-05-03
  • Updated: 2011-08-02
  • Resolved: 2011-07-18
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 7 JDK 8 Other
7Fixed 8Fixed hs21Fixed
Description
Saw this failure during 20110430 nightly testing.

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/tmp/jprt/P1/B/192840.iv159533/source/src/share/vm/gc_implementation/g1/concurrentMark.cpp:3409), pid=19698, tid=33
#  assert(obj->is_oop_or_null(true )) failed: Error

Comments
EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/69293e516993
17-05-2011

SUGGESTED FIX The solution is, during an evacuation pause, to scan the local fingers of the concurrent marking tasks. If we find local finger that points into the collection set then we need to have the concurrent mark task give up that claimed region as the values in the region fields will become stale. This will cause the concurrent mark task to claim a new region when marking restarts after the pause.
17-05-2011

EVALUATION Region that was originally a survivor regions that was currently claimed by a marking task was subsequently evacuation during the next GC. During a later GC pause the region was used as old gc alloc region. When marking restarted the local finger of the task that had claimed this region was to NTAMS (the same value as top) effectively skipping the scanning a portion of this region.
17-05-2011