I've called my own bluff and implemented a test case for this http://cr.openjdk.java.net/~martin/jvmti-oom/
Jeremy's original fix is in this hotspot webrev: http://cr.openjdk.java.net/~martin/jvmti-oom-hotspot/ Sun folks (Tim?), please take up the process issues: - please review test and fix - file one (or two?) "real" bugs or implement bugtraq-bugzilla-bridge very soon. It's non-traditional to have fixes cross the hotspot/jdk barrier, but this was the easiest way to write a test case. Martin On Mon, Jun 8, 2009 at 11:41, Martin Buchholz <marti...@google.com> wrote: > The ever-popular test > jdk/test/java/lang/ProcessBuilder/Basic.java > has infrastructure for testing this fix. > It would still be quite annoying to write portably, > involving 3 separate JDKs. > > Martin > > > On Mon, Jun 8, 2009 at 11:31, Jeremy Manson <jeremyman...@google.com>wrote: > >> This one happens to be pretty easy to trigger. I'm not sure how to >> put together a jtreg test, but the following code works: >> >> public class OOM { >> public static void main(String[] args) throws Exception { >> int size = Integer.MAX_VALUE; >> Integer[] props = new Integer[size]; >> } >> } >> >> And then invoke it: >> >> java -XX:OnOutOfMemoryError="echo PASS" OOM >> >> If it prints out "PASS", it works. My understanding is that jtreg >> tests fail by throwing an exception, so this whole thing would >> probably have to be wrapped in another Java program that throws an >> exception if it doesn't see "PASS" in the output. >> >> Jeremy >> >> On Sun, Jun 7, 2009 at 12:31 PM, Tim Bell<tim.b...@sun.com> wrote: >> > Hi Jeremy >> >> >> >> Martin Buchholz tells me that three things have to happen to get a >> patch >> >> in: >> > >> > Hi Martin :-) >> > >> >> 1) Someone inside Sun has to file a bug. Usually, this seems to be in >> >> the other bug database, but I guess it doesn't matter? >> > >> > We hope to get a bridge working between the external bugzilla system >> > (good!) and the internal, proprietary bug tracking system (bad!). >> > Hopefully after we all recover from JavaOne week. >> > >> >> 2) Two OpenJDK members have to review it (in practice). >> > >> > One reviewer is required until the late stages of a release, then >> > two reviewers. Of course, more reviewers are always better. >> > >> >> Is my understanding correct? >> > >> > What are the chances of getting a jtreg test case for this issue? >> > >> > Tests that attempt to exhaust the heap are usually problematical, >> > but it would be worth a try. Nice to have if we can get a test. >> > >> > Tim >> > >> > >> >> Jeremy >> >> >> >> On Fri, Jun 5, 2009 at 4:31 PM, Tim Bell <tim.b...@sun.com> wrote: >> >>> >> >>> Hi Jeremy >> >>>> >> >>>> I was talking to some of the HS team at JavaOne, and they encouraged >> >>>> me to send some of the patches that we are working on at Google back >> >>>> to Sun. (Everyone at Google is covered under a blanket SCA, so we >> can >> >>>> contribute back anything done by any Googler). >> >>>> >> >>>> To get started and test the waters, and because I have never tried to >> >>>> contribute to OpenJDK before, I thought I would send on a >> >>>> nearly-trivial fix that I made last year in response to a user >> >>>> complaint. The issue was that when the user specifies >> >>>> -XX:OnOutOfMemoryError, and the OOM is thrown because a single memory >> >>>> allocation was too close to Integer.MAX_VALUE, the OnOutOfMemoryError >> >>>> command would not be executed. I've attached the patch. Let me know >> >>>> what I should do to proceed. >> >>> >> >>> I created a bugzilla report for this issue: >> >>> >> >>> https://bugs.openjdk.java.net/show_bug.cgi?id=100067 >> >>> >> >>> That way we won't lose it in a pile of email. >> >>> >> >>> Tim >> >>> >> > >> > >> > >