RFR: 7164841: Improvements to the GC log file rotation

Lois Foltan lois.foltan at oracle.com
Mon Aug 19 10:40:03 PDT 2013


Hi Yumin,

Looks good, a couple of review comments:

    - I like that you pulled out the number 10 into the EXTRACHARLEN 
macro, can you explain the assigned value of 20?

    - Is -Xloggc:stdout or -Xloggc:stderr allowed?  If yes, can 
-XX:+UseGCLogFileRotation be specified at the same time?

    - Also, I am concerned about the introduction of temporary files 
called "<file_name>.<number>.current", why is this necessary?
      This scheme carries with it the additional potential for failure 
points like the ones you added checks for in 
rotatingFileStream::rotate_log().
      During error conditions, spurious <file_name>.<number>.current 
files could be left around that have no meaning or context.

    - You've added checks in rotatingFileStream::rotate_log() for if a 
pre-existing file can not be removed or if the current
       <file_name>.<number>.current can not be renamed.  If either of 
those errors occur, a warning is issued but then the log
       rotation proceeds.  So there could be a loss of -Xloggc 
information in the concurrent progression of rotating files.
       Would a better approach be to not close the existing log file in 
the rotation, proceed to determine if the next log file can be opened
       and if not, issue a warning, turn of UseGCLogFileRotation and 
continue to concatenate -Xloggc info into current file?

Thanks,
Lois


On 8/15/2013 11:35 AM, Yumin Qi wrote:
> Hi,
>
>   Can I have your review for this small changes?
> http://cr.openjdk.java.net/~minqi/7164841/webrev00/ 
> <http://cr.openjdk.java.net/%7Eminqi/7164841/webrev00/>
>
>    This is for a enhancement to add head/tail message to the logging 
> files to assist reading GC output.
>    1. modified prompt message if invalid arguments used for log rotating;
>    2. add time and file name message to log file head/tail.
>    3. for easily identify which log file is current, use file name 
> like <filename>.n.current, after it reaches maximum size, rename it to 
> <filename>.n
>         On Windows, there is no F_OK (existing test) definition, F_OK 
> is defined as "0" and for _access of VC++, it just describes:
>
> modevalue
>
> 	
>
> Checks file for
>
> 00
>
> 	
>
> Existence only
>
> 02
>
> 	
>
> Write-only
>
> 04
>
> 	
>
> Read-only
>
> 06
>
> 	
>
> Read and write
>
>
> http://msdn.microsoft.com/en-us/library/1w06ktdy.aspx
> The definition are consistent with unistd.h.
>
>     Test: JPRT and jtreg.
>
>    Thanks
>    Yumin

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/attachments/20130819/9479a089/attachment-0001.html 


More information about the hotspot-runtime-dev mailing list