On 20/04/2016 3:25 PM, Yasumasa Suenaga wrote:
Hi David,> You still removed the size bounds checks: > > 190 size_t value = parse_value(value_str); > 191 if (value == SIZE_MAX || value > SIZE_MAX / K) { > 192 errstream->print_cr("Invalid option: %s must be in range [0, " > 193 SIZE_FORMAT "]", FileSizeOptionKey, SIZE_MAX / K); > 194 success = false; SIZE_MAX is defined as ULONG_MAX in stdint.h [1].
Ah I hadn't realized this was an external value, I thought it was some internally enforced maximum file size limit. So this is just an overflow check really, and ...
Arguments::atojulong(atomull) checks value range [2].
... we already do an overflow check in here, but ...
Thus I do not think we do not need to check value range in LogFileOutput::parse_options().
... on 32-bit size_t and julong are not the same size so we would still need to ensure we don't specify a filesize that is greater than SIZE_MAX on 32-bit.
> Thanks, I had missed that example usage buried in there, but am still > surprised none of these "options" for the handling the file are > explicitly documented. I do not know how we can documented about it. (Is it internal process in Oracle?)
No I just meant that amongst all that help text you already modified, there is nothing, that I could see, that actually describes the possible options for filesize.
Thanks, David
I can help for it if I can Thanks, Yasumasa [1] https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/generic/stdint.h;h=442762728b899aa8ec219299692fce5953d796b0;hb=HEAD#l259 [2] http://hg.openjdk.java.net/jdk9/hs/hotspot/file/8005261869c9/src/share/vm/runtime/arguments.cpp#l804 2016/04/20 11:24 "David Holmes" <[email protected] <mailto:[email protected]>>: Hi Yasumasa, On 19/04/2016 11:50 PM, Yasumasa Suenaga wrote: > Hi David, > > Thank you for your comment. > > I uploaded new webrev. Could you review again? > http://cr.openjdk.java.net/~ysuenaga/JDK-8153073/webrev.02/ You still removed the size bounds checks: 190 size_t value = parse_value(value_str); 191 if (value == SIZE_MAX || value > SIZE_MAX / K) { 192 errstream->print_cr("Invalid option: %s must be in range [0, " 193 SIZE_FORMAT "]", FileSizeOptionKey, SIZE_MAX / K); 194 success = false; >> Which makes me wonder if atomull needs renaming - does the "m" mean >> memory? atojulong would seem more appropriate regardless. > > I renamed to atojulong() in new webrev. > >> Not directly related to your change but I was surprised that the >> various log file options don't seem to be documented anywhere in the >> -Xlog:help output. > > I updated help message in new webrev. Thanks, I had missed that example usage buried in there, but am still surprised none of these "options" for the handling the file are explicitly documented. Thanks, David > > Thanks, > > Yasumasa > > > On 2016/04/19 10:14, David Holmes wrote: >> Hi Yasumasa, >> >> On 19/04/2016 12:06 AM, Yasumasa Suenaga wrote: >>> PING: >>> >>> I've sent review request for JDK-8153073. >>> Could you review it? >>> >>> http://cr.openjdk.java.net/~ysuenaga/JDK-8153073/webrev.01/ >>> >>> If this patch is merged, user can set logfile size with k/m/g. >> >> Your webrev seems out of date with respect to the current code - the >> logfile size processing is done in LogFileOutput::parse_options not >> configure_rotation. And of course you now need to work with jdk9/hs not >> hs-rt. >> >> That aside: >> >> src/share/vm/runtime/arguments.cpp >> >> I don't think you need to add the Arguments:: to the atomull calls when >> you are executing in Arguments code - lines 2643, 2660 >> >> This comment could be updated to delete "memory" >> >> 788 // Parses a memory size specification string. >> >> Which makes me wonder if atomull needs renaming - does the "m" mean >> memory? atojulong would seem more appropriate regardless. >> >> --- >> >> src/share/vm/logging/logFileOutput.cpp >> >> You removed the size checking logic. >> >> Not directly related to your change but I was surprised that the >> various log file options don't seem to be documented anywhere in the >> -Xlog:help output. >> >> Thanks, >> David >> ----- >> >>> >>> Please review it. >>> >>> >>> Thanks, >>> >>> Yasumasa >>> >>> >>> On 2016/04/11 18:28, Yasumasa Suenaga wrote: >>>> PING: Could you review it? >>>> We need more reviewer. >>>> >>>>>> http://cr.openjdk.java.net/~ysuenaga/JDK-8153073/webrev.01/ >>>> >>>> >>>> Thanks, >>>> >>>> Yasumasa >>>> >>>> >>>> On 2016/03/31 22:33, Yasumasa Suenaga wrote: >>>>> CC'ed to serviceability-dev. >>>>> >>>>> Could you review it? >>>>> >>>>>> http://cr.openjdk.java.net/~ysuenaga/JDK-8153073/webrev.01/ >>>>> >>>>> >>>>> Thanks, >>>>> >>>>> Yasumasa >>>>> >>>>> >>>>> On 2016/03/31 18:24, Yasumasa Suenaga wrote: >>>>>> Hi Marcus, >>>>>> >>>>>>> You're missing an include of arguments.hpp in logFileOutput.cpp. >>>>>> >>>>>> arguments.hpp is included in precompiled.hpp . So build was succeeded. >>>>>> However, it should be included in logFileOutput.cpp . >>>>>> >>>>>> I uploaded a new webrev. Could you review again? >>>>>> >>>>>> http://cr.openjdk.java.net/~ysuenaga/JDK-8153073/webrev.01/ >>>>>> >>>>>> >>>>>> Thanks, >>>>>> >>>>>> Yasumasa >>>>>> >>>>>> >>>>>> On 2016/03/31 16:48, Marcus Larsson wrote: >>>>>>> Hi, >>>>>>> >>>>>>> On 03/30/2016 04:09 PM, Yasumasa Suenaga wrote: >>>>>>>> Hi all, >>>>>>>> >>>>>>>> This request review is related to [1]. >>>>>>>> >>>>>>>> I want to set filesize option with k/m/g as below: >>>>>>>> -Xlog:gc=trace:file=gc.log:time:filecount=5,filesize=10m >>>>>>>> >>>>>>>> Memory size option (e.g. -Xmx) can be set with k/m/g . >>>>>>>> I think we can use option parser in arguments.cpp . >>>>>>>> >>>>>>>> I uploaded webrev. Could you review it? >>>>>>>> >>>>>>>> http://cr.openjdk.java.net/~ysuenaga/JDK-8153073/webrev.00/ >>>>>>> >>>>>>> You're missing an include of arguments.hpp in logFileOutput.cpp. >>>>>>> >>>>>>> Apart from that, this looks good to me. >>>>>>> >>>>>>> Thanks, >>>>>>> Marcus >>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> I cannot access JPRT. So I need a sponsor. >>>>>>>> >>>>>>>> >>>>>>>> Thanks, >>>>>>>> >>>>>>>> Yasumasa >>>>>>>> >>>>>>>> >>>>>>>> [1] http://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/2016-March/018704.html >>>>>>>> >>>>>>>
