JDK-7030435 : Some oop_oop_iterate_m() methods iterate outside of specified memory bounds
Type:Bug
Component:hotspot
Sub-Component:gc
Affected Version:7
Priority:P4
Status:Closed
Resolution:Fixed
OS:generic
CPU:generic
Submitted:2011-03-23
Updated:2011-04-24
Resolved:2011-04-24
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.
Examples are:-
arrayKlassKlass::oop_oop_iterate_m
constantPoolKlass::oop_oop_iterate_m
objArrayKlassKlass::oop_oop_iterate_m
These are all in the perm gen, so this will likely be
moot when the perm gen goes away.
EVALUATION
Part of the changes in the suggested fix section were independently
putback by Tom when he did the statics in class work for perm gen
removal, so the only changes that will go out as part of this CR
will be those for constantPoolKlass.
WORK AROUND
The anomaly was discovered as a result of a somewhat paranoid assert I added for the changes
for 7029036. The extra iteration of these perm gen objects is likely not fatal since they
usually point to objects that are themselves in perm, so no secondary asserts will
fire or code misbehave as a result of the extra work. However, avoiding the extra work
and making the interfaces clean and uniform would be good.