JDK-7005174 : G1: assert(java_lang_ref_Reference::referent(obj)->is_oop()) failed: Enqueued a bad referent
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 7-pool
  • Priority: P3
  • Status: Closed
  • Resolution: Duplicate
  • OS: solaris_10
  • CPU: x86
  • Submitted: 2010-12-07
  • Updated: 2013-09-18
  • Resolved: 2010-12-09
Related Reports
Duplicate :  
Description
The following assert:

# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/tmp/jprt/P1/B/182643.ap31282/source/src/share/vm/memory/referenceProcessor.cpp:1304), pid=6676, tid=13
#  assert(java_lang_ref_Reference::referent(obj)->is_oop()) failed: Enqueued a bad referent
#
# JRE version: 7.0
# Java VM: OpenJDK 64-Bit Server VM (20.0-b03-201012021826.ap31282.hotspot-g1-push-fastdebug mixed mode
solaris-amd64 compressed oops)
# An error report file with more information is saved as:
# /export/local/40297.JDK7.NIGHTLY.VM+solaris-amd64_bigapps_server_mixed_OpenDS/results/OpenDS/hs_err_pid6676.log
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#
Current thread is 13
Dumping core ...

was seen during nightly testing with the OpenDS bigapps test.

Results Dir:
/net/sqenfs-2.sfbay/export2/results/vm/gtee/JDK7/NIGHTLY/VM/2010-12-03/G1_GC_Baseline/bigapps/solaris-amd64/server/mixed/solaris-amd64_bigapps_server_mixed_OpenDS

Machine:
  colfax002

VM Flags:
-d64 -server -Xmixed -XX:-PrintVMOptions -XX:+UseG1GC -XX:+StartAttachListener -XX:+UseCompressedOops

Stack Trace:

Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0x1ab18fb];;  void VMError::report(outputStream*)+0x70b
V  [libjvm.so+0x1ab29ec];;  void VMError::report_and_die()+0x4d8
V  [libjvm.so+0x1a72053];;  void report_vm_error(const char*,int,const char*,const char*)+0x55f
V  [libjvm.so+0x1ab2419];;  void VMError::report(outputStream*)+0x1229
V  [libjvm.so+0x1ab29ec];;  void VMError::report_and_die()+0x4d8
V  [libjvm.so+0x1a72053];;  void report_vm_error(const char*,int,const char*,const char*)+0x55f
V  [libjvm.so+0xd654b6];;  bool ReferenceProcessor::discover_reference(oop,ReferenceType)+0x142e
V  [libjvm.so+0xfbcb25];;  int instanceRefKlass::oop_oop_iterate_v(oop,OopClosure*)+0x745
V  [libjvm.so+0x98e6fb];;  bool CMBitMapClosure::do_bit(unsigned long)+0xa0f
V  [libjvm.so+0x1a6f5df];;  bool BitMap::iterate(BitMapClosure*,unsigned long,unsigned long)+0xb3
V  [libjvm.so+0x986d19];;  void CMTask::drain_region_stack(BitMapClosure*)+0x3c1
V  [libjvm.so+0x98767d];;  void CMTask::do_marking_step(double)+0x2e1
V  [libjvm.so+0x98c147];;  void CMConcurrentMarkingTask::work(int)+0x3bf
V  [libjvm.so+0x1ab4e83];;  void GangWorker::loop()+0x51f
V  [libjvm.so+0x1ad3c36];;  java_start+0x6a6

Comments
EVALUATION See 7005259. The assert as it currently stands is too strong for concurrent discovery. It should be weakened. You can close this as a dup of 7005259 until proven otherwise.
08-12-2010