RFR (XS): 8015635: Crash when specifying very large code cache size
Pavel Punegov
pavel.punegov at oracle.com
Mon Jul 15 10:08:55 PDT 2013
Hi,
I've filed a bug JDK-8020531
The test fails if it tries to create a java process with
-XX:ReservedCodeCacheSize=2048m
when there are some limitations on the memory.
AFAIK 32-bit Windows processes are limited with about 3Gb of virtual memory,
so then test fails. See bug for details.
Also this library doesn't print STDOUT/STDERR, so any failure looks like this:
java.lang.RuntimeException: Exit value 1 , expected to get 0
This gives no particular reason of what have happened. I think the
OutputAnalyzer in the library should be changed to print all output from
executed process.
Thanks,
Pavel
On Monday 08 July 2013 14:31:02 Christian Thalinger wrote:
> On Jul 4, 2013, at 5:13 AM, Albert Noll <albert.noll at oracle.com> wrote:
>> Hi,
>>
>> do you think the test is fine, or does it need to be reworked?
>
> I'm not sure. Let's push it for now. If Christian comes back and says
> there is a problem we can change it later.
>
> -- Chris
>
>> Best,
>> Albert
>>
>> On 03.07.2013 00:26, Christian Thalinger wrote:
>>> On Jul 2, 2013, at 2:13 PM, Christian Tornqvist
<christian.tornqvist at oracle.com> wrote:
>>>> 44 out.shouldHaveExitValue(1);
>>>>
>>>> Will throw an exception if the exit value is not 1, this will detect a
>>>> VM crash (or other abnormal exit).>>
>>> What if a VM crash would return 1 (for whatever reason)?
>>>
>>> -- Chris
>>>
>>>> Adding the check for the error message is a good change too though J
>>>>
>>>> Thanks,
>>>> Christian
>>>>
>>>> From: Albert Noll [mailto:albert.noll at oracle.com]
>>>> Sent: den 2 juli 2013 03:04
>>>> To: Christian Thalinger
>>>> Cc: Christian Tornqvist; 'Vladimir Kozlov'; 'hotspot compiler'
>>>> Subject: Re: RFR (XS): 8015635: Crash when specifying very large code
>>>> cache size
>>>>
>>>> Hi Christian,
>>>>
>>>> I am not sure either. Does anyone know if there exists a documentation
>>>> of the testlibrary? I modified the test such that it checks for (parts
>>>> of) the error message that is reported if the ReservedCodeCacheSize is
>>>> too large. This makes the test more robust.
>>>>
>>>> Here is the new webrev:
>>>> http://cr.openjdk.java.net/~anoll/8015635/webrev.05/
>>>>
>>>> Best,
>>>> Albert
>>>>
>>>>
>>>> On 02.07.2013 02:51, Christian Thalinger wrote:
>>>> I have no idea how this testlibrary works but does the following take
>>>> care of crashes or does it only check the exit value?>>>
>>>> 42 pb =
>>>> ProcessTools.createJavaProcessBuilder("-XX:ReservedCodeCacheSize=2049
>>>> m", "-version"); 43 out = new OutputAnalyzer(pb.start());
>>>> 44 out.shouldHaveExitValue(1);
>>>>
>>>> -- Chris
>>>>
>>>> On Jun 30, 2013, at 9:44 PM, Albert Noll <albert.noll at oracle.com> wrote:
>>>>
>>>>
>>>> Hi,
>>>>
>>>> thanks for looking at the patch. I updated the patch.
>>>> http://cr.openjdk.java.net/~anoll/8015635/webrev.04/
>>>>
>>>> Could I have a second review for this?
>>>>
>>>> Best,
>>>> Albert
>>>>
>>>> On 28.06.2013 18:58, Christian Tornqvist wrote:
>>>> Hi Vladimir,
>>>>
>>>> It's not needed if you simply want jtreg to run your test normally, from
>>>> the jtreg tag spec:
>>>>
>>>> "DEFAULTS
>>>>
>>>> If no @run tags are present in a defining file, a default is assumed
>>>> depending
>>>> upon the file's filename extension. For a ".java" file, "@run main
>>>> <name>"
>>>> is
>>>> assumed, where <name> is the name of the file without the ".java"
>>>> suffix."
>>>>
>>>> So using '@run main Test' is redundant.
>>>>
>>>> Thanks,
>>>> Christian
>>>>
>>>> -----Original Message-----
>>>> From: Vladimir Kozlov [mailto:vladimir.kozlov at oracle.com]
>>>> Sent: den 28 juni 2013 12:48
>>>> To: Christian Tornqvist
>>>> Cc: 'Albert Noll'; 'hotspot compiler'
>>>> Subject: Re: RFR (XS): 8015635: Crash when specifying very large code
>>>> cache
>>>> size
>>>>
>>>> Christian,
>>>>
>>>> Why '@run main Test' is not used in these tests?
>>>>
>>>> Thanks,
>>>> Vladimir
>>>>
>>>> On 6/28/13 9:08 AM, Christian Tornqvist wrote:
>>>> Hi Albert,
>>>>
>>>> You should use '@library /testlibrary' instead of a relative path,
>>>> otherwise the test looks fine. Thanks for rewriting this in java and
>>>> fixing the name of the test J
>>>>
>>>> Thanks,
>>>>
>>>> Christian
>>>>
>>>> *From:*hotspot-compiler-dev-bounces at openjdk.java.net
>>>> [mailto:hotspot-compiler-dev-bounces at openjdk.java.net] *On Behalf Of
>>>> *Albert Noll
>>>> *Sent:* den 28 juni 2013 11:19
>>>> *To:* hotspot compiler
>>>> *Subject:* Re: RFR (XS): 8015635: Crash when specifying very large
>>>> code cache size
>>>>
>>>> Hi,
>>>>
>>>> Christian, thanks for the comment. I implemented the test in Java.
>>>> I was not entirely sure how to use @library. The current version works
>>>> on my system.
>>>>
>>>>
>>>> Here is the new webrev:
>>>> http://cr.openjdk.java.net/~anoll/8015635/webrev.03/<http://cr.openjdk
>>>> .java.net/%7Eanoll/8015635/webrev.03/>
>>>>
>>>> Best,
>>>> Albert
>>>>
>>>> On 28.06.2013 10:19, Christian Tornqvist wrote:
>>>> Hi Albert,
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Please don't use shell scripts, this can be expressed in java
>>>>
>>>> which will
>>>>
>>>> work on all platforms. See
> >>>
>>>> http://hg.openjdk.java.net/hsx/hotspot-rt/hotspot/file/221df7e37535/te
>>>> st/run
>>>>
>>>> time/CommandLine/UnrecognizedVMOption.java for example on how to
>>>>
>>>> do this in
>>>>
>>>> java.
>>>>
>>>> Also, please follow the test naming convention described at:
>>>> https://wikis.oracle.com/display/HotSpotInternals/Naming+HotSpot+JTReg
>>>> +Tests
>>>>
>>>> Thanks,
>>>>
>>>>
>>>>
>>>> Christian
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> From:hotspot-compiler-dev-bounces at openjdk.java.net
>>>>
>>>> <mailto:hotspot-compiler-dev-bounces at openjdk.java.net>
>>>>
>>>> [mailto:hotspot-compiler-dev-bounces at openjdk.java.net] On Behalf
>>>>
>>>> Of Albert
>>>>
>>>> Noll
>>>>
>>>> Sent: den 28 juni 2013 03:39
>>>>
>>>> To:hotspot-compiler-dev at openjdk.java.net
>>>>
>>>> <mailto:hotspot-compiler-dev at openjdk.java.net>
>>>>
>>>> Subject: Re: RFR (XS): 8015635: Crash when specifying very large
>>>>
>>>> code cache
>>>>
>>>> size
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Hi Valdimir,
>>>>
>>>>
>>>>
>>>> thanks again for looking at the code.
>>>>
>>>> I implemented your proposed changes.
>>>>
>>>>
>>>>
>>>> http://cr.openjdk.java.net/~anoll/8015635/webrev.02/
>>>>
>>>> <http://cr.openjdk.java.net/%7Eanoll/8015635/webrev.02/>
>>>>
>>>> <http://cr.openjdk.java.net/%7Eanoll/8015635/webrev.02/>
>>>>
>>>> Best,
>>>>
>>>> Albert
>>>>
>>>>
>>>>
>>>> On 28.06.2013 08:29, Vladimir Kozlov wrote:
>>>>
>>>>
>>>>
>>>> Albert,
>>>>
>>>>
>>>>
>>>> In the test could check the code after each java run? Example
>>>>
>>>> shows only
>>>>
>>>> logic, not script instructions:
>>>>
>>>>
>>>>
>>>> java 2048m
>>>>
>>>> if $? -ne 0
>>>>
>>>> failed
>>>>
>>>> exit
>>>>
>>>> fi
>>>>
>>>>
>>>>
>>>> java 2049m
>>>>
>>>> if $? -eq 0
>>>>
>>>> failed
>>>>
>>>> exit
>>>>
>>>> fi
>>>>
>>>>
>>>>
>>>> passed
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Thanks,
>>>>
>>>> Vladimir
>>>>
>>>>
>>>>
>>>> On 6/27/13 10:14 PM, Albert Noll wrote:
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Hi,
>>>>
>>>>
>>>>
>>>> Pavel, Vladimir, thanks for looking at the patch. I added a
>>>>
>>>> regression test
>>>>
>>>> and made the proposed changes in arguments.cpp.
>>>>
>>>>
>>>>
>>>> Here is the new webrev.
>>>>
>>>> http://cr.openjdk.java.net/~anoll/8015635/webrev.01/
>>>>
>>>> <http://cr.openjdk.java.net/%7Eanoll/8015635/webrev.01/>
>>>>
>>>> <http://cr.openjdk.java.net/%7Eanoll/8015635/webrev.01/>
>>>>
>>>> <http://cr.openjdk.java.net/%7Eanoll/8015635/webrev.01/>
>>>>
>>>> <http://cr.openjdk.java.net/%7Eanoll/8015635/webrev.01/>
>>>>
>>>> Thanks,
>>>>
>>>> Albert
>>>>
>>>>
>>>>
>>>> On 27.06.2013 18:36, Vladimir Kozlov wrote:
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> We don't place 'else' on separate line and remove comment inside
>>>>
>>>> 'if' body
>>>>
>>>> and change it to:
>>>>
>>>>
>>>>
>>>> } else if (ReservedCodeCacheSize > 2*G) { {
>>>>
>>>> // Code cache size larger than MAXINT is not supported.
>>>>
>>>> Thanks,
>>>>
>>>> Vladimir
>>>>
>>>>
>>>>
>>>> On 6/27/13 5:01 AM, Albert Noll wrote:
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Hi,
>>>>
>>>>
>>>>
>>>> thanks for reviewing this small patch.
>>>>
>>>>
>>>>
>>>> Best,
>>>>
>>>> Albert
>>>>
>>>>
>>>>
>>>> jbs:https://jbs.oracle.com/bugs/browse/JDK-8015635
>>>>
>>>> webrev:http://cr.openjdk.java.net/~anoll/8015635/webrev/
>>>>
>>>> <http://cr.openjdk.java.net/%7Eanoll/8015635/webrev/>
>>>>
>>>> <http://cr.openjdk.java.net/%7Eanoll/8015635/webrev/>
>>>>
>>>> <http://cr.openjdk.java.net/%7Eanoll/8015635/webrev/>
>>>>
>>>> <http://cr.openjdk.java.net/%7Eanoll/8015635/webrev/>
>>>>
>>>> Problem: A code cache size larger than 2G is not supported and
>>>>
>>>> therefore
>>>>
>>>> results in VM crashes.
>>>>
>>>> Solution: Limit the size of the code cache to at most 2G when
>>>>
>>>> arguments are
>>>>
>>>> checked. If a larger code cache size is
>>>>
>>>> specified with -XX:ReservedCodeCacheSize=..., the JVM does not
>>>>
>>>> start and
>>>>
>>>> reports an error.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Best,
>>>>
>>>> Albert
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20130715/85cd0ac8/attachment-0001.html
More information about the hotspot-compiler-dev
mailing list