PING: RFR: JDK-8153073: UL: Set filesize option with k/m/g

David Holmes david.holmes at oracle.com
Wed Apr 20 06:04:10 UTC 2016


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" <david.holmes at oracle.com
> <mailto:david.holmes at oracle.com>>:
>
>     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
>      >>>>>>>>
>      >>>>>>>
>


More information about the serviceability-dev mailing list