Chris Hegarty chris.hegarty at oracle.com
Wed Mar 20 23:23:57 UTC 2013


I take your point about the other allocations, but as you say OOM is better than SEGV. So possibly good enough?

If NEW returns NULL, then there will be a pending OOM on the stack.


On 20 Mar 2013, at 23:12, Martin Buchholz <martinrb at google.com> wrote:

> Hi John,
> I wrote this code originally IIRC.  You are correct that the existing code
> does not check these allocations for failure.  In practice, it will be very
> rare for the failure to be seen, since the allocations are likely to be
> small and only occur during program startup.
> I commend you for trying to get this right, but if you want to get there, I
> think you need to throw OOME and undo all of the existing allocations.  You
> can do that by keeping track of how many elements you already allocated,
> freeing them, and throwing OOME.  As Alan points out, the exception in the
> static initializer shows that recovery is even more problematic than with a
> regular OOME.  Nevertheless, throwing OOME is going to be a better result
> for the user than uninformative SEGV.
> Martin
> On Wed, Mar 20, 2013 at 8:22 AM, John Zavgren <john.zavgren at oracle.com>wrote:
>> Greetings:
>> Please consider the following fix for a minor memory issue that I found in
>> the file: src/solaris/native/java/lang/UNIXProcess_md.c.
>> http://cr.openjdk.java.net/~jzavgren/8008118/webrev.01/
>> Thanks!
>> John Zavgren

More information about the core-libs-dev mailing list