RFR(xs): 8149405: OOM Error running java/lang/invoke/MethodHandlesTest.java on windows-x86 (original) (raw)

Derek White derek.white at oracle.com
Wed Mar 23 18:59:16 UTC 2016


Hi Jon,

On 3/23/16 2:12 PM, Jon Masamitsu wrote:

Derek,

http://cr.openjdk.java.net/~drwhite/8149405/webrev.01/src/share/vm/oops/methodData.cpp.udiff.html

void MethodData::cleanmethoddata(BoolObjectClosure* isalive) { + ResourceMark rm; for (ProfileData* data = firstdata(); isvalid(data); data = nextdata(data)) { data->cleanweakklasslinks(isalive); } The cleanweakklasslinks() above has a ResourceMark in it. void DataLayout::cleanweakklasslinks(BoolObjectClosure* cl) { ResourceMark m; datain()->cleanweakklasslinks(cl); } It's not clear to me where space is being allocated in cleanmethoddata() so that the ResourceMark helps. My understanding of ResourceMarks is thin so don't assume there is anything deep about this question. Jon You're right, it isn't clear where space is being allocated without doing detective work. I didn't see any conventions w.r.t documentation, naming, type signatures, etc that would help.

The problem is that the iterators first_data()/next_data() allocate also, as well as other functions called further down: parameters_type_data(), clean_extra_data(), clean_extra_data().



More information about the hotspot-gc-dev mailing list