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