RFR(XS): 8153835: Fix range of flag MaxDirectMemorySize which is parsed at jlong.

Gerard Ziemski gerard.ziemski at oracle.com
Thu Apr 14 19:38:06 UTC 2016


hi Goetz,

It appears to work as expected on 32bit - the value gets parsed into "java long”, so that’s what the max range supplies.

I will test it out using our internal testing, then ask for final review.

Do you mind if I assign the issue to myself, so that you can then officially review the fix?


cheers

> On Apr 14, 2016, at 5:23 AM, Lindenmaier, Goetz <goetz.lindenmaier at sap.com> wrote:
> 
> Oh, sorry, I missed the upper bound you are using. Max_jlong fixes the 
> Java exception.
> 
> Is it ok on 32-bit if you increase the bound from max_uint32 to max_int64?
> If so, your fix is fine for me.
> 
> Best regards,
>  Goetz.
> 
> 
> 
> 
> 
>> -----Original Message-----
>> From: Lindenmaier, Goetz
>> Sent: Donnerstag, 14. April 2016 12:14
>> To: 'Gerard Ziemski' <gerard.ziemski at oracle.com>
>> Cc: hotspot-runtime-dev at openjdk.java.net
>> Subject: RE: RFR(XS): 8153835: Fix range of flag MaxDirectMemorySize which
>> is parsed at jlong.
>> 
>> Hi Gerard,
>> 
>> The code you change is not the problem. The value is passed to Java code,
>> and java code can't  handle it:
>> 
>> java.lang.NumberFormatException: For input string:
>> "18446744073709551615"
>>        at
>> java.lang.NumberFormatException.forInputString(java.base/NumberFormat
>> Exception.java:65)
>>        at java.lang.Long.parseLong(java.base/Long.java:747)
>>        at java.lang.Long.parseLong(java.base/Long.java:872)
>>        at
>> jdk.internal.misc.VM.saveAndRemoveProperties(java.base/VM.java:290)
>>        at java.lang.System.initPhase1(java.base/System.java:1865)
>> 
>> We could change the flag to jlong / int64_t with a positive range. But I think
>> size_t is best for a flag giving a memory size.
>> 
>> Best regards,
>>  Goetz.
>> 
>> 
>> 
>>> -----Original Message-----
>>> From: Gerard Ziemski [mailto:gerard.ziemski at oracle.com]
>>> Sent: Mittwoch, 13. April 2016 18:30
>>> To: Lindenmaier, Goetz <goetz.lindenmaier at sap.com>
>>> Cc: hotspot-runtime-dev at openjdk.java.net
>>> Subject: Re: RFR(XS): 8153835: Fix range of flag MaxDirectMemorySize
>> which
>>> is parsed at jlong.
>>> 
>>> hi Goetz,
>>> 
>>> How about if we just change the MaxDirectMemorySize type to uint64_t,
>> like
>>> so:
>>> 
>>> http://cr.openjdk.java.net/~gziemski/8153835_rev1/
>>> 
>>> 
>>> cheers
>>> 
>>> 
>>>> On Apr 13, 2016, at 8:25 AM, Lindenmaier, Goetz
>>> <goetz.lindenmaier at sap.com> wrote:
>>>> 
>>>> Hi,
>>>> 
>>>> could someone please have a look at this tiny issue? And sponsor?
>>>> 
>>>> Thanks,
>>>> Goetz.
>>>> 
>>>>> -----Original Message-----
>>>>> From: Lindenmaier, Goetz
>>>>> Sent: Freitag, 8. April 2016 10:53
>>>>> To: hotspot-runtime-dev at openjdk.java.net
>>>>> Subject: RFR(XS): 8153835: Fix range of flag MaxDirectMemorySize
>> which
>>> is
>>>>> parsed at jlong.
>>>>> 
>>>>> Hi,
>>>>> 
>>>>> 
>>>>> 
>>>>> The upper limit of the range for flag MaxDirectMemorySize is
>>> MAX_SIZE_T.
>>>>> 
>>>>> The flag is used to set a property that is parsed into a long. Thus, the
>> max
>>>>> 
>>>>> value on 64-bit platforms is too large.
>>>>> 
>>>>> Fix: Limit the range to max_jlong, too.
>>>>> 
>>>>> 
>>>>> 
>>>>> Please review this change. I please need a sponsor.
>>>>> 
>>>>> http://cr.openjdk.java.net/~goetz/wr16/8153835-
>> MaxDMSz/webrev.01/
>>>>> 
>>>>> 
>>>>> 
>>>>> Best regards,
>>>>> 
>>>>> Goetz.
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>> 
> 



More information about the hotspot-runtime-dev mailing list