RFR(XS): 8174768: Make ProcessTools print executed process output into a separate file

Evgeny Nikitin evgeny.nikitin at oracle.com
Tue Apr 7 14:09:51 UTC 2020


Hi David,

 > why did you introduce a new block scope?

To separate the action block from the other code. "A Poor/lazy man's 
method". I've preferred to lay it out this way because it makes the code 
more compact and easy to read (as opposing to looking for a only-once 
used method in some other part of the file) and due to the confusing 
name of OutputAnalyzer type (which I need as a storage for output, not 
as some analyzer). Creating a method with OutputAnalyzer as a parameter 
would make this method's purpose even more confusing.

 > You can use printf rather than making a separate call to format.
Good point, I've missed that method. I'll fix it and ask Igor to change 
the webrev.

Regards,

Evgeny.

On 2020-04-07 14:50, David Holmes wrote:
> Hi Evgeny,
>
> On 7/04/2020 6:33 pm, Evgeny Nikitin wrote:
>> Hi David,
>>
>>> I'm not at all sure this is generally what we want for every single 
>>> test that uses ProcessTools! But I'm willing it to see it trialed. 
>>
>> Well, it's mostly used for test VM runs. In runs I performed 
>> (artificial "failures" included) the amounts of output were very small.
>>
>>> Please run full tier testing at least to tier 6 and ideally beyond 
>>> before pushing this. There are potential implications for temporary 
>>> (and more permanent) disk usage as well as additional time needed to 
>>> write files out to disk. (Hopefully these are generally small enough 
>>> that this doesn't make a noticeable difference.)
>> Done, thanks for suggestion. The additional runs showed no problems.
>
> Good to know - thanks.
>
>> I've provided Igor with a slightly modified version (Added 
>> notification about the output file into the main test's log). Please 
>> review:
>>
>> http://cr.openjdk.java.net/~iignatyev/enikitin/8174768/webrev.01/
>
> A couple of minor nits:
>
>  397             {
>
> why did you introduce a new block scope?
>
>  404                 System.out.println(String.format(
>
> You can use printf rather than making a separate call to format.
>
> No need to see any update if you chose to make it.
>
> Thanks,
> David
> -----
>
>> Best Regards,
>>
>> Evgeny.
>>
>> On 2020-04-02 02:07, David Holmes wrote:
>>> Thanks for sharing this Igor!
>>>
>>> I'm not at all sure this is generally what we want for every single 
>>> test that uses ProcessTools! But I'm willing it to see it trialed.
>>>
>>> Evgeny: Please run full tier testing at least to tier 6 and ideally 
>>> beyond before pushing this. There are potential implications for 
>>> temporary (and more permanent) disk usage as well as additional time 
>>> needed to write files out to disk. (Hopefully these are generally 
>>> small enough that this doesn't make a noticeable difference.)
>>>
>>> Thanks,
>>> David
>>>
>>> On 2/04/2020 5:13 am, Igor Ignatyev wrote:
>>>> Hi Evgeny,
>>>>
>>>> (widening the audience, given this affects not just hotspot 
>>>> compiler, but hotspot tests as well as core libs tests in general)
>>>>
>>>> overall that looks good to me. one suggestion, for the ease of 
>>>> failure analysis it might be worth to print out the names of 
>>>> created files, although this might potentially clutter the output, 
>>>> I don't think it'll be a problem given we already print out things 
>>>> like 'Gathering output for process ...' , 'Waiting for 
>>>> completion...' in LazyOutputBuffer.
>>>>
>>>>> The change has been tested via a mach5 test runs (jdk-tier1 
>>>>> through 4) on the 4 common platforms (linux-x64, windows-x64, 
>>>>> macosx-x64, sparcv9).
>>>> this doesn't include any of hotspot tiers, could you please also 
>>>> run hs-tier1--4?
>>>> // you can use tierN jobs which include both jdk and hs parts.
>>>>
>>>> Thanks,
>>>> -- Igor
>>>>
>>>>> On Mar 30, 2020, at 3:55 AM, Evgeny Nikitin 
>>>>> <evgeny.nikitin at oracle.com> wrote:
>>>>>
>>>>>
>>>>> Hi,
>>>>>
>>>>>
>>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8174768
>>>>>
>>>>> Webrev: 
>>>>> http://cr.openjdk.java.net/~iignatyev/enikitin/8174768/webrev.00/
>>>>>
>>>>>
>>>>> The bug had been created as a request to simplify investigation 
>>>>> for compiler control tests failures.
>>>>> I found the functionality pretty generic and useful and made 
>>>>> ProcessTools dump output as well as some diagnostic information 
>>>>> for every executed process into a separate file.
>>>>> The diagnostic information contains cmdline, exit code, stdout and 
>>>>> stderr. The output files are named like 'pid-<PID>-output.log'.
>>>>>
>>>>> The change has been tested via a mach5 test runs (jdk-tier1 
>>>>> through 4) on the 4 common platforms (linux-x64, windows-x64, 
>>>>> macosx-x64, sparcv9).
>>>>>
>>>>> Please review,
>>>>> /Evgeny Nikitin.
>>>>


More information about the core-libs-dev mailing list