JDK-6921710 : G1: assert(new_finger >= _finger && new_finger < _region_limit,"invariant")
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: hs17
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: x86
  • Submitted: 2010-02-01
  • Updated: 2013-09-18
  • Resolved: 2010-03-31
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 6 JDK 7 Other
6u21Fixed 7Fixed hs17Fixed
Description
During BigApps testing a've got next crash. (Full hs_err is in the attachment)

;; Using jvm: "/net/jre.sfbay/p/v32/jdk/7/ea/b80/binaries/linux-i586/fastdebug/jre/lib/i386/client/libjvm.so"
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/BUILD_AREA/jdk7/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.hpp:998), pid=28388, tid=3522661264
#  Error: assert(new_finger >= _finger && new_finger < _region_limit,"invariant")
#
# JRE version: 7.0-b80
# Java VM: Java HotSpot(TM) Client VM (17.0-b07-fastdebug mixed mode linux-x86 )
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#
The native stack is:
---------------  T H R E A D  ---------------

Current thread (0xf46adc00):  ConcurrentGCThread [stack: 0x00000000,0x00000000] [id=28414]

Stack: 
[error occurred during error reporting (printing stack bounds), id 0xe0000000]

Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0x67b895];;  VMError::report(outputStream*)+0x13f5
V  [libjvm.so+0x67bb24];;  VMError::report_and_die()+0x194
V  [libjvm.so+0x29a0c5];;  report_assertion_failure(char const*, int, char const*)+0x65
V  [libjvm.so+0x67b94f];;  VMError::report(outputStream*)+0x14af
V  [libjvm.so+0x67bb24];;  VMError::report_and_die()+0x194
V  [libjvm.so+0x29a0c5];;  report_assertion_failure(char const*, int, char const*)+0x65
V  [libjvm.so+0x25c4ea];;  CMTask::do_marking_step(double)+0x9fa
V  [libjvm.so+0x262045];;  CMConcurrentMarkingTask::work(int)+0x125
V  [libjvm.so+0x6a1250];;  GangWorker::loop()+0x130
V  [libjvm.so+0x69fbe8];;  GangWorker::run()+0x18
V  [libjvm.so+0x548069];;  java_start(Thread*)+0xf9
C  [libpthread.so.0+0x61b5]

Comments
EVALUATION http://hg.openjdk.java.net/hsx/hsx17/master/rev/b8a8eafd038d,ChangeRequest=6921710
26-03-2010

EVALUATION ChangeSet=http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/3f0549ed0c98,ChangeRequest=6921710
18-03-2010

EVALUATION If CM task was aborted while scanning the last object of the specified region and the size of that object is equal to bitmap's granularity then the next offset would be equal or over the region limit which is exactly what the assertion states.
08-03-2010