8205054: Could not find "lsof" on test machine

David Holmes david.holmes at oracle.com
Fri Jun 15 12:10:05 UTC 2018


On 15/06/2018 9:53 PM, Leo Korinth wrote:
> Hi David and Goetz.
> 
> I have added the last caching thing David asked for. Are you also okay 
> with the changes Goetz?
> 
> Webrev:
> http://cr.openjdk.java.net/~lkorinth/8205054/02_03/ (incremental)
> http://cr.openjdk.java.net/~lkorinth/8205054/03/    (full)

That looks fine to me.

> I also noticed that my test case unfortunately runs in many tiers. But 
> that is nothing that is special to my test case but is shared between 
> most test cases that are selected by being under "runtime/". I do not 
> feel qualified in doing changes there, and maybe there is a reason for it.

Different tiers can involve different build variations and also 
different runtime flags. So tests get run in different ways.

David

> Thanks,
> Leo
> 
> On 15/06/18 11:56, David Holmes wrote:
>> Hi Leo,
>> On 15/06/2018 7:37 PM, Leo Korinth wrote:
>>> Hi David,
>>>
>>> Thanks for the input, it makes the test case _much_ better. 
>>> Unfortunately it is easy to get blind when you are in a hurry and 
>>> responsible for a failing test case. It is of course much better to 
>>> look for the command at start.
>>>
>>> New output:
>>>
>>>      STDOUT:
>>>      Could not find lsof like command
>>>      Exit test case as successful though it could not verify anything
>>>      STDERR:
>>>
>>>      JavaTest Message:  Test complete.
>>
>> Much clearer - thanks!
>>
>>> Webrev:
>>> http://cr.openjdk.java.net/~lkorinth/8205054/01_02/ (incremental)
>>> http://cr.openjdk.java.net/~lkorinth/8205054/02/    (full)
>>
>> Generally looks good. Only nit is that the lsofCommand() result should 
>> be cached in a field so you don't need to recalculate it for the 
>> actual execution.
>>
>> Thanks,
>> David
>>
>>> Testing:
>>> Tested on my GNU/Linux machine and currently running a mach5 test 
>>> (mostly for verifying the windows part)
>>>
>>> Thanks,
>>> Leo
>>>
>>>
>>> On 15/06/18 10:40, David Holmes wrote:
>>>> Hi Leo,
>>>>
>>>> Inine ...
>>>>
>>>> On 15/06/2018 6:06 PM, Leo Korinth wrote:
>>>>> Hi David.
>>>>>
>>>>> On 15/06/18 04:08, David Holmes wrote:
>>>>>> Sorry after doing more testing and looking at the output I think 
>>>>>> we need to do better. For a machine with no lsof we see:
>>>>>>
>>>>>> using command: <not found>
>>>>
>>>> That looks like an error ...
>>>>
>>>>>> (Second VM) Open file descriptors:
>>>>>>
>>>>>> using command: <not found>
>>>>
>>>> That looks like an error too - but why did we keep going after the 
>>>> first error?
>>>>>> (Third VM) Open file descriptors:
>>>>>>
>>>>>> VM RESULT => RETAINS FD
>>>>>> VM RESULT => VM EXIT
>>>>>>
>>>>>> Log file was not inherited by third VM
>>>>
>>>> But that's not true - we couldn't determine anything! So this looks 
>>>> like an accidental pass rather than an deliverate skip.
>>>>
>>>>>> ---
>>>>>>
>>>>>> That looks like an error is occurring to me and that we pass by 
>>>>>> accident. I think we need to terminate the test, cleanly of 
>>>>>> course, as soon as we can't find the tool and report that the test 
>>>>>> can't run because of that.
>>>>>>
>>>>>> Thanks,
>>>>>> David
>>>>>
>>>>> I could change the output to "using command: <not found, 
>>>>> terminating test as successful as we can not finish it in a 
>>>>> meaningful way>" or maybe something else that you prefer that is 
>>>>> better.
>>>>>
>>>>> I do believe this is the easy way to terminate the test cleanly 
>>>>> without leaving running JVMs. We need to communicate back to the 
>>>>> first JVM that the test was successful. Is it the string "<not 
>>>>> found>" that looks like an error and that we pass by accident? Or 
>>>>> is it something in the test case code that looks fishy?
>>>>
>>>> See above.
>>>>
>>>> I'd suggest locating the command as one of the first things in the 
>>>> test in the first VM and then bail out if not found.
>>>>
>>>> Thanks,
>>>> David
>>>> ------
>>>>
>>>>> Or maybe the comment should be improved?
>>>>>    // if command can not be found return list without log file 
>>>>> (some machines does not have "lsof" in the expected place). (add 
>>>>> this->)The empty list will make the test exit successfully.(<-add 
>>>>> this)
>>>>>
>>>>>> On 15/06/2018 11:21 AM, David Holmes wrote:
>>>>>>> Hi Leo,
>>>>>>>
>>>>>>> This is what I was concerned about - and yes the CI testing did 
>>>>>>> shake it out in a few cycles.
>>>>>>>
>>>>>>> I agree with the fix and will sponsor it for you.
>>>>>
>>>>> Thanks David.
>>>>> /Leo
>>>>>
>>>>>>>
>>>>>>> Thanks,
>>>>>>> David
>>>>>>>
>>>>>>> On 15/06/2018 3:31 AM, Leo Korinth wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>> On 14/06/18 19:10, Lindenmaier, Goetz wrote:
>>>>>>>>> Hi Leo,
>>>>>>>>>
>>>>>>>>> the fix looks good.  It makes sense to skip a test if the 
>>>>>>>>> infrastructure is
>>>>>>>>> insufficient to run it.
>>>>>>>>>
>>>>>>>>> Could you please put the long comment at the end of line 179
>>>>>>>>> into a line of it's own?
>>>>>>>>
>>>>>>>> Fixed
>>>>>>>>
>>>>>>>>> Also, please take the chance and move the Copyright message
>>>>>>>>> to the beginning of the file.
>>>>>>>>
>>>>>>>> Fixed
>>>>>>>>
>>>>>>>>> Best regards,
>>>>>>>>>    Goetz.
>>>>>>>>>
>>>>>>>>
>>>>>>>> Thanks for the fast review; I need a second reviewer and someone 
>>>>>>>> to help me push (I am not a commiter).
>>>>>>>>
>>>>>>>> New webrevs:
>>>>>>>> http://cr.openjdk.java.net/~lkorinth/8205054/00_01/ (incremental)
>>>>>>>> http://cr.openjdk.java.net/~lkorinth/8205054/01/    (full)
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>> Leo
>>>>>>>>
>>>>>>>>>> -----Original Message-----
>>>>>>>>>> From: hotspot-runtime-dev [mailto:hotspot-runtime-dev-
>>>>>>>>>> bounces at openjdk.java.net] On Behalf Of Leo Korinth
>>>>>>>>>> Sent: Donnerstag, 14. Juni 2018 18:55
>>>>>>>>>> To: Hotspot dev runtime <hotspot-runtime-dev at openjdk.java.net>
>>>>>>>>>> Subject: RFR: 8205054: Could not find "lsof" on test machine
>>>>>>>>>>
>>>>>>>>>> Hi,
>>>>>>>>>>
>>>>>>>>>> Unfortunately some test machines does not have "lsof" 
>>>>>>>>>> installed, or it
>>>>>>>>>> can not be found.
>>>>>>>>>>
>>>>>>>>>> I do not know how to find "lsof" on the test machine where the 
>>>>>>>>>> test
>>>>>>>>>> fails; the command might not be installed. Here is a fix to 
>>>>>>>>>> make the
>>>>>>>>>> test case succeed if "lsof" can not be found. I believe it is 
>>>>>>>>>> the best
>>>>>>>>>> option (at least for now). I am sorry for all the noise I am 
>>>>>>>>>> generating.
>>>>>>>>>>
>>>>>>>>>> Bug:
>>>>>>>>>> https://bugs.openjdk.java.net/browse/JDK-8205054
>>>>>>>>>>
>>>>>>>>>> Webrev:
>>>>>>>>>> http://cr.openjdk.java.net/~lkorinth/8205054/00/
>>>>>>>>>>
>>>>>>>>>> Testing:
>>>>>>>>>> I have tested this on my machine, and I have a mach5 test job 
>>>>>>>>>> running.
>>>>>>>>>>
>>>>>>>>>> Thanks,
>>>>>>>>>> Leo


More information about the hotspot-runtime-dev mailing list