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/

Now has more tests and filled-in @bug line.

Hotspot fix webrev is at:
http://cr.openjdk.java.net/~martin/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 <[email protected] <mailto:[email protected]>> 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/>

        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/>

        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


Reply via email to