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);
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);
- duplicates
-
JDK-8150002 Check for the validity of oop before printing it in verify_remembered_set
-
- Resolved
-