JDK-8150003 : Check for the validity of oop before printing it in verify_remembered_set
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 9
  • Priority: P4
  • Status: Closed
  • Resolution: Duplicate
  • Submitted: 2016-02-16
  • Updated: 2016-02-16
  • Resolved: 2016-02-16
Related Reports
Duplicate :  
Description
The following change should be made in verify_remembered_set() in src/share/vm/gc/g1/heapRegion.cpp to protect against the crashes that can occur if the object (obj) in the 'to' region which is being printed here has been overwritten and is no longer a valid oop:

739          _containing_obj->print_on(log.info_stream());
740          log.info("points to obj " PTR_FORMAT " in region " HR_FORMAT, p2i(obj), HR_FORMAT_PARAMS(to));
+              if (obj->is_oop()) {
741            obj->print_on(log.info_stream());
+              }
742          log.info("Obj head CTE = %d, field CTE = %d.", cv_obj, cv_field);