RFR: 8146879: Add option for handling existing log files in UL

Marcus Larsson marcus.larsson at oracle.com
Fri Mar 18 13:04:12 UTC 2016


Updated patch after feedback.

New webrev:
http://cr.openjdk.java.net/~mlarsson/8146879/webrev.04/

Incremental:
http://cr.openjdk.java.net/~mlarsson/8146879/webrev.03-04/

Tested with internal VM tests through RBT.

Changes:
* Rotation filecount is now limited to 1000 files.
* Removed loop in os::compare_file_modified_times.
* Added a check before rotating/truncating an existing log file, and 
will only do so if it's a regular file.
* Added test case to check that logging to a directory gives the 
intended error message.
* Fixed test help method to handle arbitrary length log lines.

Thanks,
Marcus

On 03/11/2016 03:21 PM, Marcus Larsson wrote:
> Third time's the charm.
>
> Webrev:
> http://cr.openjdk.java.net/~mlarsson/8146879/webrev.03/
>
> This patch makes log file rotation the default. Default thresholds are 
> 5 rotated files with a target size of 20MiB. Truncating behavior can 
> be achieved by setting filecount to 0 (-Xlog::myfile.log::filecount=0).
>
> If a log file already exists during log file initialization it will be 
> rotated. If any of the target file names (file.0 to file.4 in the 
> default case) are available, that filename will be used for the 
> existing log. If all names are taken the VM will attempt to overwrite 
> the oldest file.
>
> This should prevent unlimited log file creations and avoid accidental 
> loss of log files from previous runs. The default thresholds (5 files, 
> 20MiB each) is just a suggestion. If you think it should be 
> higher/lower let me know.
>
> Tested with included internal VM tests through RBT.
>
> Thanks,
> Marcus
>
> On 2016-03-01 15:05, Marcus Larsson wrote:
>> Hi,
>>
>> After some offline discussions I'm withdrawing this patch. I will 
>> instead investigate if I can achieve similar behavior using log 
>> rotation as the default.
>>
>> Thanks,
>> Marcus
>>
>> On 03/01/2016 12:11 PM, Marcus Larsson wrote:
>>> Hi again,
>>>
>>> Taking a different approach to this.
>>>
>>> New webrev:
>>> http://cr.openjdk.java.net/~mlarsson/8146879/webrev.01/
>>>
>>> Existing files will now by default be renamed/archived with a .X 
>>> suffix where X is the lowest number such that the resulting file 
>>> name is available (jvm.log becomes jvm.log.0). A mode option for 
>>> controlling this behavior has been added as well. It can be set to 
>>> archive, append, or truncate (i.e. -Xlog::jvm.log::mode=truncate).
>>>
>>> Tested with included jtreg test through JPRT.
>>>
>>> Thanks,
>>> Marcus
>>>
>>> On 01/14/2016 04:00 PM, Marcus Larsson wrote:
>>>> Hi,
>>>>
>>>> Please review the following patch to make sure UL truncates 
>>>> existing log files before writing to them. Since files are opened 
>>>> in append mode, truncation isn't done automatically, so instead the 
>>>> patch adds an attempt to remove the log file before opening it.
>>>>
>>>> Webrev:
>>>> http://cr.openjdk.java.net/~mlarsson/8146879/webrev.00/
>>>>
>>>> Issue:
>>>> https://bugs.openjdk.java.net/browse/JDK-8146879
>>>>
>>>> Testing:
>>>> Included test through JPRT
>>>>
>>>> Thanks,
>>>> Marcus
>>>
>>
>



More information about the serviceability-dev mailing list