JDK-8202665 : G1ConcurrentMark fails when computing class size
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 11
  • Priority: P3
  • Status: Closed
  • Resolution: Duplicate
  • Submitted: 2018-05-04
  • Updated: 2018-05-08
  • Resolved: 2018-05-08
Related Reports
Duplicate :  
Description
# Problematic frame:
# V  [libjvm.so+0x96806f]  ClassLoadingService::compute_class_size(InstanceKlass*)+0x20f


V  [libjvm.so+0x96806f]  ClassLoadingService::compute_class_size(InstanceKlass*)+0x20f
V  [libjvm.so+0x9685e8]  ClassLoadingService::notify_class_unloaded(InstanceKlass*)+0x1b8
V  [libjvm.so+0x958e6d]  ClassLoaderData::classes_do(void (*)(InstanceKlass*))+0xad
V  [libjvm.so+0x95b983]  ClassLoaderData::unload()+0x23
V  [libjvm.so+0x960181]  ClassLoaderDataGraph::do_unloading(bool)+0x2e1
V  [libjvm.so+0x174e997]  SystemDictionary::do_unloading(BoolObjectClosure*, GCTimer*, bool)+0x567
V  [libjvm.so+0xc70975]  G1ConcurrentMark::weak_refs_work(bool)+0x515
V  [libjvm.so+0xc75f69]  G1ConcurrentMark::remark()+0x179
V  [libjvm.so+0x18a1006]  VM_CGC_Operation::doit()+0x256
V  [libjvm.so+0x189fc42]  VM_Operation::evaluate()+0x132
V  [libjvm.so+0x189ad7e]  VMThread::evaluate_operation(VM_Operation*) [clone .constprop.55]+0x19e
V  [libjvm.so+0x189b847]  VMThread::loop()+0x4d7
V  [libjvm.so+0x189be56]  VMThread::run()+0xd6
V  [libjvm.so+0x14b8e50]  thread_native_entry(Thread*)+0x100

Comments
This is likely caused by this change: http://hg.openjdk.java.net/jdk/jdk/rev/ff8dbb56740a 8200466: Revisit the setting of _transitive_interfaces in InstanceKlass Summary: Delay the setting of _transitive_interfaces until after initialize_supers() in fill_instance_klass(). Reviewed-by: iklam, coleenp It changes how we set up the transitive interfaces, and the line we crash at is: class_size += k->transitive_interfaces()->size(); Sending to Runtime for first evaluation.
07-05-2018