After merging up some of my in-progress workspaces with the latest changes in hotspot-gc, I started to see marking verification failures that are caused by inconsistencies in the liveness counting:
2.919: [GC cleanup VerifyDuringGC:(before)[Verifying threads Roots HeapRegionSets HeapRegions RemSet syms strs zone dict cldg hand C-heap code cache ]
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc: SuppressErrorAt=/concurrentMark.cpp:1936
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/export/workspaces/7188263/src/share/vm/gc_implementation/g1/concurrentMark.cpp:1936), pid=26746, tid=14
# guarantee(g1_par_verify_task.failures() == 0) failed: Unexpected accounting failures
#
# JRE version: Java(TM) SE Runtime Environment (7.0-b142)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.0-b02-internal-fastdebug mixed mode solaris-amd64 compressed oops)
# Core dump written. Default location: /export/GC-TEST-SUITES/gc_test_suite/gc_test_suite_3/specjvm98/core or core.26746
#
# An error report file with more information is saved as:
# /export/GC-TEST-SUITES/gc_test_suite/gc_test_suite_3/specjvm98/hs_err_pid26746.log
#
# If you would like to submit a bug report, please visit:
# http://bugreport.sun.com/bugreport/crash.jsp
Errors of this type indicate that the liveness counting data, that is collected concurrently, is out of whack when compared against some reference data generated by walking the marking bitmap.