JDK-8150002 : 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: Resolved
  • Resolution: Fixed
  • Submitted: 2016-02-16
  • Updated: 2016-07-21
  • Resolved: 2016-03-02
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 7 JDK 8 JDK 9
7u111Fixed 8u102Fixed 9 b110Fixed
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);