JDK-8031763 : Kitchensink fails on assertion heap()->is_in_closed_subset
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 9
  • Priority: P2
  • Status: Closed
  • Resolution: Cannot Reproduce
  • OS: solaris_11
  • CPU: x86_64
  • Submitted: 2014-01-15
  • Updated: 2016-04-12
  • Resolved: 2016-04-12
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 9
9Resolved
Related Reports
Relates :  
Relates :  
Relates :  
Description
Kitchensink failed on the assertion:

Internal Error (/opt/jprt/T/P1/133656.ehelin/s/src/share/vm/oops/instanceMirrorKlass.cpp:65), pid=13396, tid=3
assert(Universe::heap()->is_in_closed_subset(o)) failed: should be in closed

Stack: [0xffff80ffbed0e000,0xffff80ffbee0e000],  sp=0xffff80ffbee056d0,  free space=989k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0x28fda90]  void VMError::report(outputStream*)+0x92c;;  __1cHVMErrorGreport6MpnMoutputStream__v_+0x92c
V  [libjvm.so+0x28fefd9]  void VMError::report_and_die()+0x579;;  __1cHVMErrorOreport_and_die6M_v_+0x579
V  [libjvm.so+0xfdf33b]  void report_vm_error(const char*,int,const char*,const char*)+0x55f;;  __1cPreport_vm_error6Fpkci11_v_+0x55f
V  [libjvm.so+0x14f9a7c]  int InstanceMirrorKlass::oop_oop_iterate_nv(oop,FilterOutOfRegionClosure*)+0x19ac;;  __1cTInstanceMirrorKlassSoop_oop_iterate_nv6MnDoop_pnYFilterOutOfRegionClosure__i_+0x19ac
V  [libjvm.so+0x13909a6]  HeapWord*HeapRegion::oops_on_card_seq_iterate_careful(MemRegion,FilterOutOfRegionClosure*,bool,signed char*)+0x17aa;;  __1cKHeapRegionbGoops_on_card_seq_iterate_careful6MnJMemRegion_pnYFilterOutOfRegionClosure_bpW_pnIHeapWord__+0x17aa
V  [libjvm.so+0x124f865]  bool G1RemSet::refine_card(signed char*,int,bool)+0x359;;  __1cIG1RemSetLrefine_card6MpWib_b_+0x359
V  [libjvm.so+0x12507a2]  bool RefineRecordRefsIntoCSCardTableEntryClosure::do_card_ptr(signed char*,int)+0x5a;;  __1cbRRefineRecordRefsIntoCSCardTableEntryClosureLdo_card_ptr6MpWi_b_+0x5a
V  [libjvm.so+0x10dd57c]  bool DirtyCardQueueSet::apply_closure_to_completed_buffer(CardTableEntryClosure*,int,int,bool)+0x160;;  __1cRDirtyCardQdDueueSetbHapply_closure_to_completed_buffer6MpnVCardTableEntryClosure_iib_b_+0x160
V  [libjvm.so+0x11b0fd3]  void G1CollectedHeap::iterate_dirty_card_closure(CardTableEntryClosure*,DirtyCardQueue*,bool,int)+0x57;;  __1cPG1CollectedHeapbAiterate_dirty_card_closure6MpnVCardTableEntryClosure_pnODirtyCardQdDueue_bi_v_+0x57
V  [libjvm.so+0x124e3ef]  void G1RemSet::oops_into_collection_set_do(OopsInHeapRegionClosure*,CodeBlobToOopClosure*,int)+0x35b;;  __1cIG1RemSetbBoops_into_collection_set_do6MpnXOopsInHeapRegionClosure_pnUCodeBlobToOopClosure_i_v_+0x35b
V  [libjvm.so+0x11c3256]  void G1CollectedHeap::g1_process_strong_roots(bool,SharedHeap::ScanningOption,OopClosure*,OopsInHeapRegionClosure*,G1KlassScanClosure*,int)+0xa1e;;  __1cPG1CollectedHeapXg1_process_strong_roots6MbnKSharedHeapOScanningOption_pnKOopClosure_pnXOopsInHeapRegionClosure_pnSG1KlassScanClosure_i_v_+0xa1e
V  [libjvm.so+0x11d568a]  void G1ParTask::work(unsigned)+0x76a;;  __1cJG1ParTaskEwork6MI_v_+0x76a
V  [libjvm.so+0x2961d63]  void GangWorker::loop()+0x533;;  __1cKGangWorkerEloop6M_v_+0x533
V  [libjvm.so+0x22cc962]  java_start+0x1ce;;  java_start+0x1ce
C  [libc.so.1+0x121545]  _thrp_setup+0xa5;;  _thrp_setup+0xa5
C  [libc.so.1+0x1217f0]  _lwp_start+0x0;;  _lwp_start+0x0
Comments
This crash was seen once, more than two years ago. Given that the G1 code base has changed quite a bit since then, and we have no easy reproducer for this it's not worth investigating further.
12-04-2016

I linked this issue to several other issues showing a similar failure pattern. However, this failure is most likely due to a bad pointer on the heap, so the related bugs might be completely different. Don't rush any conclusions :)
15-01-2014

Attached stack traces of all threads.
15-01-2014

ILW: Impact = High, since an assert failed Likelihood = Low, since only happened once in nightly testing Workaround = High, since no workaround is known HLH => P2
15-01-2014