RFR (S): JDK-8129855: -XX:+IgnoreUnrecognizedVMOptions hides out of range VM options.

Daniel D. Daugherty daniel.daugherty at oracle.com
Wed Oct 7 22:14:45 UTC 2015


On 9/29/15 12:09 PM, gerard ziemski wrote:
> Here is a webrev1 updated with fixes based on Dmitry's feedback (ie. 
> changes to the java test only):
>
> http://cr.openjdk.java.net/~gziemski/8129855_rev1

src/share/vm/runtime/arguments.cpp
     It took a couple of reading attempts (L893-899), but I'm
     good with this file.

src/share/vm/runtime/globals.cpp
     L336:   get_locked_message_ext(buf, buflen);
     L337:   return Flag::NONE;
         Seems a bit strange for Flag::NONE to be returned after
         we've called out to get_locked_message_ext(buf, buflen).

         Looks like the protocol is to check buf[0]. If it's
         non-NULL: (buf[0] != '\0'), then we've gotten a message
         from the extension...

src/share/vm/runtime/globals.hpp
     No comments.

test/runtime/CommandLine/IgnoreUnrecognizedVMOptions.java
     L29  * @summary -XX:+IgnoreUnrecognizedVMOptions should work 
according to the spec from https:...

         Is this URL persistent and will it survive the test
         of time (and DB changes)?

     L84:     runJavaAndCheckExitValue(false, 
"-XX:-IgnoreUnrecognizedVMOptions", "-XX:-UnlockDiagnosticVMOptions", 
"-XX:+AlwaysSafeConstructors", "-version");

         Should this be '-XX:-UnlockExperimentalVMOptions'?


     L85:     runJavaAndCheckExitValue(false, 
"-XX:-IgnoreUnrecognizedVMOptions", "-XX:-UnlockDiagnosticVMOptions", 
"-XX:+FlightRecorder", "-version");

         Should this be '-XX:-UnlockCommercialFeatures'?

     L87:     runJavaAndCheckExitValue(false, 
"-XX:+IgnoreUnrecognizedVMOptions", "-XX:-UnlockDiagnosticVMOptions", 
"-XX:+AlwaysSafeConstructors", "-version");

         Should this be '-XX:-UnlockExperimentalVMOptions'?

     L88:     runJavaAndCheckExitValue(false, 
"-XX:+IgnoreUnrecognizedVMOptions", "-XX:-UnlockDiagnosticVMOptions", 
"-XX:+FlightRecorder", "-version");

         Should this be '-XX:-UnlockCommercialFeatures'?

     L126-131: seems like you should narrow down the use of
         "-XX:-IgnoreUnrecognizedVMOptions" and 
"-XX:-UnlockDiagnosticVMOptions"
         to just the options to which they apply.

Dan


>
>
> cheers
>
> On 09/28/2015 04:55 PM, gerard ziemski wrote:
>> hi all,
>>
>> We are fixing how IgnoreUnrecognizedVMOptions treats those flags 
>> whose values are out of range. Before the fix, the VM
>> would continue even if flag’s value was out of range, ex:
>>
>> java_old -XX:+IgnoreUnrecognizedVMOptions -XX:MinTLABSize=0 -version
>> size_t MinTLABSize=0 is outside the allowed range [ 1 ... 4294967295 ]
>> java version "1.9.0-internal-fastdebug"
>> Java(TM) SE Runtime Environment (build 
>> 1.9.0-internal-fastdebug-20150624183527.jesper.main2rt-b00)
>> Java HotSpot(TM) Server VM (build 
>> 1.9.0-internal-fastdebug-20150624183527.jesper.main2rt-b00, mixed mode)
>>
>> now, we correctly exit the VM with an error, ex:
>>
>> java_new -XX:+IgnoreUnrecognizedVMOptions -XX:MinTLABSize=0 -version
>> size_t MinTLABSize=0 is outside the allowed range [ 1 ... 
>> 18446744073709551615 ]
>> Improperly specified VM option 'MinTLABSize=0'
>> Error: Could not create the Java Virtual Machine.
>> Error: A fatal exception has occurred. Program will exit.
>>
>> In addition IgnoreUnrecognizedVMOptions nows strictly follows the 
>> spec as outlined in JDK-8129855. The behavior changes
>> depending on whether the build is product or debug.
>>
>> We also introduce a new test that verifies all known use cases that 
>> we care about.
>>
>> References:
>>       bugid: https://bugs.openjdk.java.net/browse/JDK-8129855
>>      webrev: http://cr.openjdk.java.net/~gziemski/8129855_rev0
>> discussion: 
>> http://mail.openjdk.java.net/pipermail/hotspot-dev/2015-June/019213.html
>>
>> Passes "JPRT hotspot" and "RBT testlist,noncolo.testlist quick"
>>
>>
>> cheers
>>
>



More information about the hotspot-dev mailing list