Problem with vmoptions versus javaoptions

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

Problem with vmoptions versus javaoptions

David Holmes
If I pass:

-vmoptions:"-XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler -Xcomp"

the tests run fine but take excruciatingly long as the compilations are
also running in Xcomp mode. So I tried changing to -javaoptions and got:

Error: VM option 'UseJVMCICompiler' is experimental and must be enabled
via -XX:+UnlockExperimentalVMOptions.
Error: The unlock option must precede 'UseJVMCICompiler'.
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

It's like the options were not being parsed and passed correctly.

Any ideas?

Thanks,
David
Reply | Threaded
Open this post in threaded view
|

Re: Problem with vmoptions versus javaoptions

Martin Buchholz-3
Hi David,

I tried adding
 '-javaoptions:-XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler -Xcomp'
to my jtreg invocation, and it worked!  I can tell something changed because my test (FJExceptionTableLeak!) ran much more slowly!
I suspect shell quoting misstep.

On Sun, Jun 24, 2018 at 4:32 PM, David Holmes <[hidden email]> wrote:
If I pass:

-vmoptions:"-XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler -Xcomp"

the tests run fine but take excruciatingly long as the compilations are also running in Xcomp mode. So I tried changing to -javaoptions and got:

Error: VM option 'UseJVMCICompiler' is experimental and must be enabled via -XX:+UnlockExperimentalVMOptions.
Error: The unlock option must precede 'UseJVMCICompiler'.
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

It's like the options were not being parsed and passed correctly.

Any ideas?

Thanks,
David

Reply | Threaded
Open this post in threaded view
|

Re: Problem with vmoptions versus javaoptions

Jonathan Gibbons
In reply to this post by David Holmes
David,

What info is available in the .jtr file regarding the command lines that
were constructed?

-- Jon


On 6/24/18 4:32 PM, David Holmes wrote:

> If I pass:
>
> -vmoptions:"-XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler
> -Xcomp"
>
> the tests run fine but take excruciatingly long as the compilations
> are also running in Xcomp mode. So I tried changing to -javaoptions
> and got:
>
> Error: VM option 'UseJVMCICompiler' is experimental and must be
> enabled via -XX:+UnlockExperimentalVMOptions.
> Error: The unlock option must precede 'UseJVMCICompiler'.
> Error: Could not create the Java Virtual Machine.
> Error: A fatal exception has occurred. Program will exit.
>
> It's like the options were not being parsed and passed correctly.
>
> Any ideas?
>
> Thanks,
> David

Reply | Threaded
Open this post in threaded view
|

Re: Problem with vmoptions versus javaoptions

David Holmes
Hi Jon,

On 26/06/2018 2:58 AM, Jonathan Gibbons wrote:
> David,
>
> What info is available in the .jtr file regarding the command lines that
> were constructed?

Ah! We don't get that far:

Error: VM option 'UseJVMCICompiler' is experimental and must be enabled
via -XX:+UnlockExperimentalVMOptions.
Error: The unlock option must precede 'UseJVMCICompiler'.
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Error: failed to get JDK properties for
/export/users/dh198349/jdk-dev/open/test/hotspot/jtreg/../../../../build/linux-x64-debug/images/jdk/bin/java
-XX:+UseJVMCICompiler -Xcomp -XX:+UnlockExperimentalVMOptions; exit code 1

Sorry that last line was important.

David

> -- Jon
>
>
> On 6/24/18 4:32 PM, David Holmes wrote:
>> If I pass:
>>
>> -vmoptions:"-XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler
>> -Xcomp"
>>
>> the tests run fine but take excruciatingly long as the compilations
>> are also running in Xcomp mode. So I tried changing to -javaoptions
>> and got:
>>
>> Error: VM option 'UseJVMCICompiler' is experimental and must be
>> enabled via -XX:+UnlockExperimentalVMOptions.
>> Error: The unlock option must precede 'UseJVMCICompiler'.
>> Error: Could not create the Java Virtual Machine.
>> Error: A fatal exception has occurred. Program will exit.
>>
>> It's like the options were not being parsed and passed correctly.
>>
>> Any ideas?
>>
>> Thanks,
>> David
>
Reply | Threaded
Open this post in threaded view
|

Re: Problem with vmoptions versus javaoptions

Jonathan Gibbons
Thanks for adding the last line; it was important.

Yes, jtreg was trying to set up the command to get the custom property
definitions from the JVM under tests. This happens once, at the
beginning of the run.

I've not seen this "order of options" show up as a problem before.

In this case, the command line contains the following, in order,

1. the options specified by `-vmoptions`
2. by the options specified by `-javaoptions`
3. any additional options needed for the module system
4. any options specified in the "extraPropDefns" entries in TEST.ROOT

Can you use that information to ensure that the command line gets set up
correctly?  At this point, I'm not sure if there is really a bug or not,
given Martin B's comment that this seemed to work for him. I would
strongly expect that if you put -XX:+UnlockExperimentalVMOptions early
in your -vmoptions you should be OK.

-- Jon






On 06/25/2018 04:28 PM, David Holmes wrote:

> Hi Jon,
>
> On 26/06/2018 2:58 AM, Jonathan Gibbons wrote:
>> David,
>>
>> What info is available in the .jtr file regarding the command lines
>> that were constructed?
>
> Ah! We don't get that far:
>
> Error: VM option 'UseJVMCICompiler' is experimental and must be
> enabled via -XX:+UnlockExperimentalVMOptions.
> Error: The unlock option must precede 'UseJVMCICompiler'.
> Error: Could not create the Java Virtual Machine.
> Error: A fatal exception has occurred. Program will exit.
> Error: failed to get JDK properties for
> /export/users/dh198349/jdk-dev/open/test/hotspot/jtreg/../../../../build/linux-x64-debug/images/jdk/bin/java
> -XX:+UseJVMCICompiler -Xcomp -XX:+UnlockExperimentalVMOptions; exit
> code 1
>
> Sorry that last line was important.
>
> David
>
>> -- Jon
>>
>>
>> On 6/24/18 4:32 PM, David Holmes wrote:
>>> If I pass:
>>>
>>> -vmoptions:"-XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler
>>> -Xcomp"
>>>
>>> the tests run fine but take excruciatingly long as the compilations
>>> are also running in Xcomp mode. So I tried changing to -javaoptions
>>> and got:
>>>
>>> Error: VM option 'UseJVMCICompiler' is experimental and must be
>>> enabled via -XX:+UnlockExperimentalVMOptions.
>>> Error: The unlock option must precede 'UseJVMCICompiler'.
>>> Error: Could not create the Java Virtual Machine.
>>> Error: A fatal exception has occurred. Program will exit.
>>>
>>> It's like the options were not being parsed and passed correctly.
>>>
>>> Any ideas?
>>>
>>> Thanks,
>>> David
>>

Reply | Threaded
Open this post in threaded view
|

Re: Problem with vmoptions versus javaoptions

David Holmes
On 26/06/2018 9:50 AM, Jonathan Gibbons wrote:

> Thanks for adding the last line; it was important.
>
> Yes, jtreg was trying to set up the command to get the custom property
> definitions from the JVM under tests. This happens once, at the
> beginning of the run.
>
> I've not seen this "order of options" show up as a problem before.
>
> In this case, the command line contains the following, in order,
>
> 1. the options specified by `-vmoptions`
> 2. by the options specified by `-javaoptions`
> 3. any additional options needed for the module system
> 4. any options specified in the "extraPropDefns" entries in TEST.ROOT
>
> Can you use that information to ensure that the command line gets set up
> correctly?  At this point, I'm not sure if there is really a bug or not,
> given Martin B's comment that this seemed to work for him. I would
> strongly expect that if you put -XX:+UnlockExperimentalVMOptions early
> in your -vmoptions you should be OK.

But I have it first:

-vmoptions:"-XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler -Xcomp"

It's when I change -vmoptions to -javaoptions that it breaks. Seems to
me, based on the error message:

 >> -XX:+UseJVMCICompiler -Xcomp -XX:+UnlockExperimentalVMOptions;

that jtreg has reordered things somehow ??

Thanks,
David

> -- Jon
>
>
>
>
>
>
> On 06/25/2018 04:28 PM, David Holmes wrote:
>> Hi Jon,
>>
>> On 26/06/2018 2:58 AM, Jonathan Gibbons wrote:
>>> David,
>>>
>>> What info is available in the .jtr file regarding the command lines
>>> that were constructed?
>>
>> Ah! We don't get that far:
>>
>> Error: VM option 'UseJVMCICompiler' is experimental and must be
>> enabled via -XX:+UnlockExperimentalVMOptions.
>> Error: The unlock option must precede 'UseJVMCICompiler'.
>> Error: Could not create the Java Virtual Machine.
>> Error: A fatal exception has occurred. Program will exit.
>> Error: failed to get JDK properties for
>> /export/users/dh198349/jdk-dev/open/test/hotspot/jtreg/../../../../build/linux-x64-debug/images/jdk/bin/java
>> -XX:+UseJVMCICompiler -Xcomp -XX:+UnlockExperimentalVMOptions; exit
>> code 1
>>
>> Sorry that last line was important.
>>
>> David
>>
>>> -- Jon
>>>
>>>
>>> On 6/24/18 4:32 PM, David Holmes wrote:
>>>> If I pass:
>>>>
>>>> -vmoptions:"-XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler
>>>> -Xcomp"
>>>>
>>>> the tests run fine but take excruciatingly long as the compilations
>>>> are also running in Xcomp mode. So I tried changing to -javaoptions
>>>> and got:
>>>>
>>>> Error: VM option 'UseJVMCICompiler' is experimental and must be
>>>> enabled via -XX:+UnlockExperimentalVMOptions.
>>>> Error: The unlock option must precede 'UseJVMCICompiler'.
>>>> Error: Could not create the Java Virtual Machine.
>>>> Error: A fatal exception has occurred. Program will exit.
>>>>
>>>> It's like the options were not being parsed and passed correctly.
>>>>
>>>> Any ideas?
>>>>
>>>> Thanks,
>>>> David
>>>
>
Reply | Threaded
Open this post in threaded view
|

Re: Problem with vmoptions versus javaoptions

Jonathan Gibbons


On 6/25/18 6:01 PM, David Holmes wrote:

> On 26/06/2018 9:50 AM, Jonathan Gibbons wrote:
>> Thanks for adding the last line; it was important.
>>
>> Yes, jtreg was trying to set up the command to get the custom
>> property definitions from the JVM under tests. This happens once, at
>> the beginning of the run.
>>
>> I've not seen this "order of options" show up as a problem before.
>>
>> In this case, the command line contains the following, in order,
>>
>> 1. the options specified by `-vmoptions`
>> 2. by the options specified by `-javaoptions`
>> 3. any additional options needed for the module system
>> 4. any options specified in the "extraPropDefns" entries in TEST.ROOT
>>
>> Can you use that information to ensure that the command line gets set
>> up correctly?  At this point, I'm not sure if there is really a bug
>> or not, given Martin B's comment that this seemed to work for him. I
>> would strongly expect that if you put
>> -XX:+UnlockExperimentalVMOptions early in your -vmoptions you should
>> be OK.
>
> But I have it first:
>
> -vmoptions:"-XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler
> -Xcomp"
>
> It's when I change -vmoptions to -javaoptions that it breaks. Seems to
> me, based on the error message:
>
> >> -XX:+UseJVMCICompiler -Xcomp -XX:+UnlockExperimentalVMOptions;
>
> that jtreg has reordered things somehow ??
>
> Thanks,
> David
David,

OK, thanks; I know where to check.  Yes, there is code that "processes"
options, but it's not supposed to gratuitously reorder them.

-- Jon

>
>> -- Jon
>>
>>
>>
>>
>>
>>
>> On 06/25/2018 04:28 PM, David Holmes wrote:
>>> Hi Jon,
>>>
>>> On 26/06/2018 2:58 AM, Jonathan Gibbons wrote:
>>>> David,
>>>>
>>>> What info is available in the .jtr file regarding the command lines
>>>> that were constructed?
>>>
>>> Ah! We don't get that far:
>>>
>>> Error: VM option 'UseJVMCICompiler' is experimental and must be
>>> enabled via -XX:+UnlockExperimentalVMOptions.
>>> Error: The unlock option must precede 'UseJVMCICompiler'.
>>> Error: Could not create the Java Virtual Machine.
>>> Error: A fatal exception has occurred. Program will exit.
>>> Error: failed to get JDK properties for
>>> /export/users/dh198349/jdk-dev/open/test/hotspot/jtreg/../../../../build/linux-x64-debug/images/jdk/bin/java
>>> -XX:+UseJVMCICompiler -Xcomp -XX:+UnlockExperimentalVMOptions; exit
>>> code 1
>>>
>>> Sorry that last line was important.
>>>
>>> David
>>>
>>>> -- Jon
>>>>
>>>>
>>>> On 6/24/18 4:32 PM, David Holmes wrote:
>>>>> If I pass:
>>>>>
>>>>> -vmoptions:"-XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler
>>>>> -Xcomp"
>>>>>
>>>>> the tests run fine but take excruciatingly long as the
>>>>> compilations are also running in Xcomp mode. So I tried changing
>>>>> to -javaoptions and got:
>>>>>
>>>>> Error: VM option 'UseJVMCICompiler' is experimental and must be
>>>>> enabled via -XX:+UnlockExperimentalVMOptions.
>>>>> Error: The unlock option must precede 'UseJVMCICompiler'.
>>>>> Error: Could not create the Java Virtual Machine.
>>>>> Error: A fatal exception has occurred. Program will exit.
>>>>>
>>>>> It's like the options were not being parsed and passed correctly.
>>>>>
>>>>> Any ideas?
>>>>>
>>>>> Thanks,
>>>>> David
>>>>
>>

Reply | Threaded
Open this post in threaded view
|

Re: Problem with vmoptions versus javaoptions

Jonathan Gibbons
In reply to this post by David Holmes
David,

If it is convenient for you to find it, can you send me the complete
jtreg command line that you are using?

-- Jon


On 06/25/2018 06:01 PM, David Holmes wrote:

> On 26/06/2018 9:50 AM, Jonathan Gibbons wrote:
>> Thanks for adding the last line; it was important.
>>
>> Yes, jtreg was trying to set up the command to get the custom
>> property definitions from the JVM under tests. This happens once, at
>> the beginning of the run.
>>
>> I've not seen this "order of options" show up as a problem before.
>>
>> In this case, the command line contains the following, in order,
>>
>> 1. the options specified by `-vmoptions`
>> 2. by the options specified by `-javaoptions`
>> 3. any additional options needed for the module system
>> 4. any options specified in the "extraPropDefns" entries in TEST.ROOT
>>
>> Can you use that information to ensure that the command line gets set
>> up correctly?  At this point, I'm not sure if there is really a bug
>> or not, given Martin B's comment that this seemed to work for him. I
>> would strongly expect that if you put
>> -XX:+UnlockExperimentalVMOptions early in your -vmoptions you should
>> be OK.
>
> But I have it first:
>
> -vmoptions:"-XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler
> -Xcomp"
>
> It's when I change -vmoptions to -javaoptions that it breaks. Seems to
> me, based on the error message:
>
> >> -XX:+UseJVMCICompiler -Xcomp -XX:+UnlockExperimentalVMOptions;
>
> that jtreg has reordered things somehow ??
>
> Thanks,
> David
>
>> -- Jon
>>
>>
>>
>>
>>
>>
>> On 06/25/2018 04:28 PM, David Holmes wrote:
>>> Hi Jon,
>>>
>>> On 26/06/2018 2:58 AM, Jonathan Gibbons wrote:
>>>> David,
>>>>
>>>> What info is available in the .jtr file regarding the command lines
>>>> that were constructed?
>>>
>>> Ah! We don't get that far:
>>>
>>> Error: VM option 'UseJVMCICompiler' is experimental and must be
>>> enabled via -XX:+UnlockExperimentalVMOptions.
>>> Error: The unlock option must precede 'UseJVMCICompiler'.
>>> Error: Could not create the Java Virtual Machine.
>>> Error: A fatal exception has occurred. Program will exit.
>>> Error: failed to get JDK properties for
>>> /export/users/dh198349/jdk-dev/open/test/hotspot/jtreg/../../../../build/linux-x64-debug/images/jdk/bin/java
>>> -XX:+UseJVMCICompiler -Xcomp -XX:+UnlockExperimentalVMOptions; exit
>>> code 1
>>>
>>> Sorry that last line was important.
>>>
>>> David
>>>
>>>> -- Jon
>>>>
>>>>
>>>> On 6/24/18 4:32 PM, David Holmes wrote:
>>>>> If I pass:
>>>>>
>>>>> -vmoptions:"-XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler
>>>>> -Xcomp"
>>>>>
>>>>> the tests run fine but take excruciatingly long as the
>>>>> compilations are also running in Xcomp mode. So I tried changing
>>>>> to -javaoptions and got:
>>>>>
>>>>> Error: VM option 'UseJVMCICompiler' is experimental and must be
>>>>> enabled via -XX:+UnlockExperimentalVMOptions.
>>>>> Error: The unlock option must precede 'UseJVMCICompiler'.
>>>>> Error: Could not create the Java Virtual Machine.
>>>>> Error: A fatal exception has occurred. Program will exit.
>>>>>
>>>>> It's like the options were not being parsed and passed correctly.
>>>>>
>>>>> Any ideas?
>>>>>
>>>>> Thanks,
>>>>> David
>>>>
>>

Reply | Threaded
Open this post in threaded view
|

Re: Problem with vmoptions versus javaoptions

David Holmes
Just to close this off, the problem was quoting as Martin had suggested.
One of my scripts didn't use "$@", so the quotes on the string of
javaoptions were removed which made jtreg only see the first one (the
Ulockxxx) as a javaoption which was then moved to the end of the option
list - hence the error.

Thanks,
David

On 27/06/2018 3:35 AM, Jonathan Gibbons wrote:

> David,
>
> If it is convenient for you to find it, can you send me the complete
> jtreg command line that you are using?
>
> -- Jon
>
>
> On 06/25/2018 06:01 PM, David Holmes wrote:
>> On 26/06/2018 9:50 AM, Jonathan Gibbons wrote:
>>> Thanks for adding the last line; it was important.
>>>
>>> Yes, jtreg was trying to set up the command to get the custom
>>> property definitions from the JVM under tests. This happens once, at
>>> the beginning of the run.
>>>
>>> I've not seen this "order of options" show up as a problem before.
>>>
>>> In this case, the command line contains the following, in order,
>>>
>>> 1. the options specified by `-vmoptions`
>>> 2. by the options specified by `-javaoptions`
>>> 3. any additional options needed for the module system
>>> 4. any options specified in the "extraPropDefns" entries in TEST.ROOT
>>>
>>> Can you use that information to ensure that the command line gets set
>>> up correctly?  At this point, I'm not sure if there is really a bug
>>> or not, given Martin B's comment that this seemed to work for him. I
>>> would strongly expect that if you put
>>> -XX:+UnlockExperimentalVMOptions early in your -vmoptions you should
>>> be OK.
>>
>> But I have it first:
>>
>> -vmoptions:"-XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler
>> -Xcomp"
>>
>> It's when I change -vmoptions to -javaoptions that it breaks. Seems to
>> me, based on the error message:
>>
>> >> -XX:+UseJVMCICompiler -Xcomp -XX:+UnlockExperimentalVMOptions;
>>
>> that jtreg has reordered things somehow ??
>>
>> Thanks,
>> David
>>
>>> -- Jon
>>>
>>>
>>>
>>>
>>>
>>>
>>> On 06/25/2018 04:28 PM, David Holmes wrote:
>>>> Hi Jon,
>>>>
>>>> On 26/06/2018 2:58 AM, Jonathan Gibbons wrote:
>>>>> David,
>>>>>
>>>>> What info is available in the .jtr file regarding the command lines
>>>>> that were constructed?
>>>>
>>>> Ah! We don't get that far:
>>>>
>>>> Error: VM option 'UseJVMCICompiler' is experimental and must be
>>>> enabled via -XX:+UnlockExperimentalVMOptions.
>>>> Error: The unlock option must precede 'UseJVMCICompiler'.
>>>> Error: Could not create the Java Virtual Machine.
>>>> Error: A fatal exception has occurred. Program will exit.
>>>> Error: failed to get JDK properties for
>>>> /export/users/dh198349/jdk-dev/open/test/hotspot/jtreg/../../../../build/linux-x64-debug/images/jdk/bin/java
>>>> -XX:+UseJVMCICompiler -Xcomp -XX:+UnlockExperimentalVMOptions; exit
>>>> code 1
>>>>
>>>> Sorry that last line was important.
>>>>
>>>> David
>>>>
>>>>> -- Jon
>>>>>
>>>>>
>>>>> On 6/24/18 4:32 PM, David Holmes wrote:
>>>>>> If I pass:
>>>>>>
>>>>>> -vmoptions:"-XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler
>>>>>> -Xcomp"
>>>>>>
>>>>>> the tests run fine but take excruciatingly long as the
>>>>>> compilations are also running in Xcomp mode. So I tried changing
>>>>>> to -javaoptions and got:
>>>>>>
>>>>>> Error: VM option 'UseJVMCICompiler' is experimental and must be
>>>>>> enabled via -XX:+UnlockExperimentalVMOptions.
>>>>>> Error: The unlock option must precede 'UseJVMCICompiler'.
>>>>>> Error: Could not create the Java Virtual Machine.
>>>>>> Error: A fatal exception has occurred. Program will exit.
>>>>>>
>>>>>> It's like the options were not being parsed and passed correctly.
>>>>>>
>>>>>> Any ideas?
>>>>>>
>>>>>> Thanks,
>>>>>> David
>>>>>
>>>
>