JDK-6923717 : G1: assert((s == klass->oop_size(this)) ... || UseG1GC)))),"wrong array object size")
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: hs17,6u18
  • Priority: P3
  • Status: Closed
  • Resolution: Cannot Reproduce
  • OS: generic,solaris_10
  • CPU: x86
  • Submitted: 2010-02-05
  • Updated: 2013-09-18
  • Resolved: 2010-05-05
Related Reports
Relates :  
Relates :  
Test gc/ArrayJuggle/Juggle34 crashes VM.

I saw this assertion several times hoever I am not able to reproduce it now. I'll update CR when I am able to do this.

The full results are here:

Here is the stack trace from hs_err:
;; Using jvm: "/export/local/common/jdk/baseline/solaris-sparc/jre/lib/sparc/server/libjvm.so"
# A fatal error has been detected by the Java Runtime Environment:
#  Internal Error (/tmp/jprt/P1/B/230259.et151817/source/src/share/vm/oops/oop.inline.hpp:424), pid=13594, tid=5
#  Error: assert((s == klass->oop_size(this)) || (Universe::heap()->is_gc_active() && ((is_typeArray() && UseParNewGC) || (is_objArray() && is_forwarded() &&
 (UseParNewGC || UseParallelGC || UseG1GC)))),"wrong array object size")
# JRE version: 7.0-b80
# Java VM: Java HotSpot(TM) Server VM (17.0-b08-2010-01-22-230259.et151817.hs17b08-fastdebug compiled mode solaris-sparc )
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp

---------------  T H R E A D  ---------------

Current thread (0x0005d000):  ConcurrentGCThread [stack: 0xfa300000,0xfa380000] [id=5]

Stack: [0xfa300000,0xfa380000],  sp=0xfa37f8d0,  free space=1fefefad06ck
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0x134c524];;  void VMError::report_and_die()+0x718
V  [libjvm.so+0x6f1d10];;  void report_assertion_failure(const char*,int,const char*)+0x70
V  [libjvm.so+0x878a88];;  HeapWord*HeapRegion::oops_on_card_seq_iterate_careful(MemRegion,FilterOutOfRegionClosure*)+0x5c8
V  [libjvm.so+0x7ffb64];;  void HRInto_G1RemSet::concurrentRefineOneCard_impl(signed char*,int)+0x340
V  [libjvm.so+0x800054];;  void HRInto_G1RemSet::concurrentRefineOneCard(signed char*,int)+0x438
V  [libjvm.so+0x7ddb30];;  bool RefineCardTableEntryClosure::do_card_ptr(signed char*,int)+0x1c
V  [libjvm.so+0x751134];;  bool DirtyCardQueue::apply_closure_to_buffer(CardTableEntryClosure*,void**,unsigned,unsigned,bool,int)+0x8c
V  [libjvm.so+0x751848];;  bool DirtyCardQueueSet::apply_closure_to_completed_buffer_helper(int,BufferNode*)+0x3c
V  [libjvm.so+0x7518e4];;  bool DirtyCardQueueSet::apply_closure_to_completed_buffer(int,int,bool)+0x54
V  [libjvm.so+0x667704];;  void ConcurrentG1RefineThread::run()+0x25c
V  [libjvm.so+0xfc9a28];;  java_start+0x1ac

EVALUATION John Cuthbertson evaluated this. He could easily reproduce it with JDK 7 b81 and b82, but he did 1,000s of iterations with b83 with no failures. I'm closing this as not reproducible.