JVMTI OOM handling when arrays / objects are too large
Martin Buchholz
martinrb at google.com
Sun Jun 14 15:43:07 PDT 2009
I'm far from an expert on jvmti or hotspot's error handling, but...
If I've asked for a command to be run on OOME,
having it not run feels very much like a bug.
I agree that OOME might not perfectly match the situation,
but is there a better course of action?
I don't see any reasonable alternative to throwing OOME.
Martin
On Sun, Jun 14, 2009 at 15:25, David Holmes - Sun Microsystems <
David.Holmes at sun.com> wrote:
> Martin, Jeremy,
>
> This change has been bugging me. I guess what I don't like is not the "fix"
> but the fact that we report OutOfMemoryError for this situation in the first
> place! We are not out-of-memory! We've been asked to allocate something that
> is impossible to allocate given the physical constraints of the memory
> system. The heap could actually be nearly empty! If I were executing a OOM
> handler using the "onError" mechanism I'm not sure I'd want it to run for
> this case.
>
> This fix makes this usage consistent with all the other OOM situations, but
> we post JVMTI resource exhausted events when the resource need not be
> exhausted at all! I'm not sure that is the right thing to do. Even assuming
> it is the right thing to do, this may impact some tests as it now generates
> additional JVMTI events.
>
> David Holmes
>
> Martin Buchholz said the following on 06/15/09 05:37:
>
>> I've polished the changes in preparation for committing.
>> I'll commit once I have reviewer approval.
>> You'll need to let me know which forest to commit to.
>>
>> Test webrev is now at:
>> http://cr.openjdk.java.net/~martin/jvmti-oom-test/<http://cr.openjdk.java.net/%7Emartin/jvmti-oom-test/>
>>
>> Now has more tests and filled-in @bug line.
>>
>> Hotspot fix webrev is at:
>> http://cr.openjdk.java.net/~martin/jvmti-oom/<http://cr.openjdk.java.net/%7Emartin/jvmti-oom/>
>>
>> I've hacked on my private copy of webrev to make the output more suitable
>> for
>> external contributors.
>>
>> I think it's time to again beg the hotspot integrators
>> to be sure to run the java/lang and java/util/concurrent tests
>> from the jdk repo before committing changes to MASTER.
>>
>> Martin
>>
>> On Sat, Jun 13, 2009 at 10:18, Tim Bell <Tim.Bell at sun.com <mailto:
>> Tim.Bell at sun.com>> wrote:
>>
>> Martin Buchholz wrote:
>>
>> I've called my own bluff and implemented a test case for this
>> http://cr.openjdk.java.net/~martin/jvmti-oom/<http://cr.openjdk.java.net/%7Emartin/jvmti-oom/>
>> <http://cr.openjdk.java.net/%7Emartin/jvmti-oom/>
>>
>> Jeremy's original fix is in this hotspot webrev:
>> http://cr.openjdk.java.net/~martin/jvmti-oom-hotspot/<http://cr.openjdk.java.net/%7Emartin/jvmti-oom-hotspot/>
>> <http://cr.openjdk.java.net/%7Emartin/jvmti-oom-hotspot/>
>>
>> Sun folks (Tim?), please take up the process issues:
>> - please review test and fix
>> - file one (or two?) "real" bugs or
>>
>>
>> For the HotSpot VM side:
>>
>> 6850957 hotspot/jvmti JVMTI OOM handling when arrays / objects
>> are too large
>>
>>
>> For the test case:
>>
>> 6850958 java/classes_lang JVMTI OOM handling when arrays /
>> objects are too large
>>
>>
>>
>>
>> It's non-traditional to have fixes cross the hotspot/jdk barrier,
>> but this was the easiest way to write a test case.
>>
>>
>> This happens most often in the Serviceability area, for example when
>> fixes hit JVM TI and JDWP code. You have another good example, where
>> the most natural test case fits in JDK/test/java/lang/ProcessBuilder
>>
>> The parent bugzilla report is:
>>
>>
>> https://bugs.openjdk.java.net/show_bug.cgi?id=100067
>>
>> I filed two internal bug reports that should be visible on
>> bugs.sun.com <http://bugs.sun.com>
>> in a few working days. Using URL surgery, I predict the URLs will be:
>>
>> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6850957
>> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6850958
>>
>> Later today I will set up a forest, apply the patches from the
>> webrevs, and send it through JPRT. I want to see the HotSpot
>> test results, as well as the new ProcessBuilder/Basic.java
>>
>> Tim
>>
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/serviceability-dev/attachments/20090614/8eb4afb5/attachment.html
More information about the serviceability-dev
mailing list