JDK-8246787 : TestStressRSetCoarsening.java failed "assert(Universe::heap()->is_in(o)) failed: should be in closed"
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 15
  • Priority: P2
  • Status: Resolved
  • Resolution: Cannot Reproduce
  • OS: linux
  • CPU: x86_64
  • Submitted: 2020-06-08
  • Updated: 2020-06-11
  • Resolved: 2020-06-11
Related Reports
Relates :  
Description
The following test failed in the JDK15 CI:

gc/stress/TestStressRSetCoarsening.java

Here's a snippet from the log file:

[255.363s][info][gc,marking  ] GC(26) Concurrent Cleanup for Next Mark 4.548ms
[255.363s][info][gc          ] GC(26) Concurrent Cycle 3227.583ms
%% step 6 out of 10 (~33% done)
%%      0  --> 256
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc:  SuppressErrorAt=/iterator.inline.hpp:64
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/opt/mach5/mesos/work_dir/slaves/63712a43-4eaa-429c-95b4-483ac8241123-S860/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/9e8df6e9-21d2-4c06-8d7e-1b17432784b2/runs/3267fa51-3d98-461f-9976-313a3b4f9ddb/workspace/open/src/hotspot/share/memory/iterator.inline.hpp:64), pid=24833, tid=25113
#  assert(Universe::heap()->is_in(o)) failed: should be in closed *p 0x00000000f99b22f8 0x00000000eb610e30
#
# JRE version: Java(TM) SE Runtime Environment (15.0+27) (fastdebug build 15-ea+27-1323)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 15-ea+27-1323, compiled mode, sharing, compressed oops, g1 gc, linux-amd64)
# Problematic frame:
# V  [libjvm.so+0xac1487]  void OopIterateClosure::verify<unsigned int>(unsigned int*) [clone .part.0]+0x87
#
# Core dump will be written. Default location: Core dumps may be processed with "/opt/core.sh %p" (or dumping to /opt/mach5/mesos/work_dir/slaves/63712a43-4eaa-429c-95b4-483ac8241123-S873/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/fa638a3c-0739-487e-ba7c-3ea34e3f7e5c/runs/019afcc7-4659-4191-aa4a-c202c78beee9/testoutput/test-support/jtreg_open_test_hotspot_jtreg_hotspot_gc/scratch/0/core.24833)
#
Unsupported internal testing APIs have been used.

# An error report file with more information is saved as:
# /opt/mach5/mesos/work_dir/slaves/63712a43-4eaa-429c-95b4-483ac8241123-S873/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/fa638a3c-0739-487e-ba7c-3ea34e3f7e5c/runs/019afcc7-4659-4191-aa4a-c202c78beee9/testoutput/test-support/jtreg_open_test_hotspot_jtreg_hotspot_gc/scratch/0/hs_err_pid24833.log
#
# If you would like to submit a bug report, please visit:
#   https://bugreport.java.com/bugreport/crash.jsp
#
----------System.err:(0/0)----------
----------rerun:(52/6528)*----------

Here's the crashing thread's stack:

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

Current thread (0x00007f5da40110e0):  ConcurrentGCThread "G1 Refine#3" [stack: 0x00007f5de6de4000,0x00007f5de6ee4000] [id=25113]

Stack: [0x00007f5de6de4000,0x00007f5de6ee4000],  sp=0x00007f5de6ee29a0,  free space=1018k
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0xac1487]  void OopIterateClosure::verify<unsigned int>(unsigned int*) [clone .part.0]+0x87
V  [libjvm.so+0xb8199b]  void OopOopIterateBoundedDispatch<G1ConcurrentRefineOopClosure>::Table::oop_oop_iterate_bounded<ObjArrayKlass, unsigned int>(G1ConcurrentRefineOopClosure*, oop, Klass*, MemRegion)+0xab
V  [libjvm.so+0xb7e1d5]  void oopDesc::oop_iterate<G1ConcurrentRefineOopClosure>(G1ConcurrentRefineOopClosure*, MemRegion)+0x65
V  [libjvm.so+0xb7e71a]  HeapWordImpl** HeapRegion::oops_on_memregion_seq_iterate_careful<false, G1ConcurrentRefineOopClosure>(MemRegion, G1ConcurrentRefineOopClosure*)+0x49a
V  [libjvm.so+0xb759ea]  G1RemSet::refine_card_concurrently(unsigned char*, unsigned int)+0xba
V  [libjvm.so+0xb133d8]  G1DirtyCardQueueSet::refine_buffer(BufferNode*, unsigned int, G1ConcurrentRefineStats*)+0x3d8
V  [libjvm.so+0xb13acb]  G1DirtyCardQueueSet::refine_completed_buffer_concurrently(unsigned int, unsigned long, G1ConcurrentRefineStats*)+0x6b
V  [libjvm.so+0xb0e9be]  G1ConcurrentRefine::do_refinement_step(unsigned int, G1ConcurrentRefineStats*)+0x37e
V  [libjvm.so+0xb0fd76]  G1ConcurrentRefineThread::run_service()+0x1b6
V  [libjvm.so+0x94767b]  ConcurrentGCThread::run()+0x2b
V  [libjvm.so+0x16c33a0]  Thread::call_run()+0x100
V  [libjvm.so+0x13c64a6]  thread_native_entry(Thread*)+0x116

Comments
Have not seen any complaints about my plan to close this bug as "Cannot Reproduce" so I'm closing it.
11-06-2020

machine is suspect to be faulty
10-06-2020

There is a similar failure mode in JDK-8222823, but that assert message shows a reference into a free region, i.e. reclaimed space which means this is a valid failure. This one shows a "bad" reference into valid memory areas, a reference from an Old to another Old region, within the respective [bottom, top[ area. According to that message, the assert should not have failed.
09-06-2020