hg: jdk/submit14: 8235305: Corrupted oops embedded in nmethods due to parallel modification during optional evacuation
thomas.schatzl at oracle.com
thomas.schatzl at oracle.com
Wed Jan 22 09:00:48 UTC 2020
Changeset: 082f1d3eb164
Author: tschatzl
Date: 2020-01-22 10:00 +0100
URL: https://hg.openjdk.java.net/jdk/submit14/rev/082f1d3eb164
8235305: Corrupted oops embedded in nmethods due to parallel modification during optional evacuation
Summary: During optional evacuation it is possible that G1 modifies oops embedded in nmethods in parallel. One source are oop* gathered by a previous evacuation phase in the optional roots, the other the region's strong code roots list. Since these oops may be unaligned on x64, this can result in them being corrupted. The fix is to not gather embedded oops in the optional roots list as the strong code roots list contains them already.
Reviewed-by: sjohanss, stefank
Contributed-by: erik.osterlund at oracle.com, stefan.johansson at oracle.com, stefan.karlsson at oracle.com, thomas.schatzl at oracle.com
! src/hotspot/share/gc/g1/g1OopClosures.hpp
! src/hotspot/share/gc/g1/g1OopClosures.inline.hpp
! src/hotspot/share/gc/g1/g1SharedClosures.hpp
More information about the jdk-submit-changes
mailing list