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
- Previous message (by thread): RFR(xs): 8149405: OOM Error running java/lang/invoke/MethodHandlesTest.java on windows-x86
- Next message (by thread): RFR(xs): 8149405: OOM Error running java/lang/invoke/MethodHandlesTest.java on windows-x86
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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().
- Derek
On 03/23/2016 08:02 AM, Derek White wrote:
This is a very small fix that adds ResourceMarks to MethodData::cleanmethoddata() (and two similar functions nearby).
Basically an iteration over all classes in all methods in all classes was occurring in one ResourceMark during a full gc, so we occasionally ran out of malloc space. Once again, x86 builds running on Win64 are the "canary in the coal mine" for these kinds of temp. memory leaks, so it's a great test case even if not a very realistic one! BUG: https://bugs.openjdk.java.net/browse/JDK-8149405 WEBREV: http://cr.openjdk.java.net/~drwhite/8149405/webrev.01/ TESTS: jprt Thanks for looking, - Derek
- Previous message (by thread): RFR(xs): 8149405: OOM Error running java/lang/invoke/MethodHandlesTest.java on windows-x86
- Next message (by thread): RFR(xs): 8149405: OOM Error running java/lang/invoke/MethodHandlesTest.java on windows-x86
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]