RFR(XS): 8189213: [TESTBUG] Running jtreg tests on machine without docker shows extra message
mikhailo
mikhailo.seledtsov at oracle.com
Wed Nov 8 15:22:25 UTC 2017
On 11/07/2017 06:01 PM, David Holmes wrote:
> Hi Misha,
> On 8/11/2017 7:36 AM, mikhailo wrote:
>>>> Does it work for you Bob? David, are you OK with this approach?
>>> I think this is an improvement and I’m ok with this approach but I
>>> don’t see that it will save that much time.
>>> Starting docker takes a while (worse the first time). I’ve seen
>>> 1sec startup times. Let see what David thinks
>>> of the /tmp caching idea. You’d have to put the user that found and
>>> successfully ran docker and have to deal
>>> with multi-process write access to the file.
>> OK. There is another option that will work well, but requires one
>> extra input from user. We could designate a property that would state
>> whether a host is docker capable. When user wishes to execute docker
>> tests locally she/he will set the property to true. When executed via
>> Oracle automated test system, the system will set this property to
>> true on docker capable test nodes. All that VMProps will do is check
>> the property, so no docker ps any more, not even searching for docker
>> on a known locations.
>>
>> As for naming, I can propose this: jdk.test.lib.docker.capable.node.
>> Alternative suggestions of names welcome.
>>
>> This makes the check clear, simple and reliable. What do you think?
>
> This doesn't work if the intent is that we happen to add a
> docker-enabled machine to a test pool. You can't selectively set the
> property only when run on the right host (if you could then we'd only
> run the tests on that host in the first place).
>
> But you seemed to have moved from fixing this bug - 8189213 - to
> trying to address the new RFE 8190730.
You are right. I got carried away with this discussion.
I should fix the "JDK-8189213 - [TESTBUG] Running jtreg tests on machine
without docker shows extra message" first, and then work on
"JDK-8190730 - [TESTBUG] Calling 'docker ps' from VMProps.java to
determine presence of docker engine is deemed too heavy".
So, the fix for this issue is simple, as we agreed before - remove the
message. Here is a webrev:
http://cr.openjdk.java.net/~mseledtsov/8189213.02/
May I count you as a Reviewer for JDK-8189213?
Thank you,
Misha
P.S. As for JDK-8190730, I will try to summarize the discussion in the
comments of the JBS issue.
>
> Thanks,
> David
>
>>
>> Thank you,
>> Misha
>>
>>
>>>
>>> Bob.
>>>
>>>
>>>>> This is probably breaking new ground, but can we cache the result
>>>>> of “docker ps” in /tmp in order to eliminate the performance
>>>>> overhead for all but the first time a new user runs these tests?
>>>> I try to keep this solution simple. If you and David approve the
>>>> solution above, I will implement and test it. If we find any
>>>> problems, either during my testing or during test production, we
>>>> could look into caching mechanisms.
>>>>
>>>>
>>>> Thank you,
>>>> Misha
>>>>> Bob.
>>>>>>
>>>>>> Thank you,
>>>>>> Misha
>>>>>>
>>>>>>> Thanks,
>>>>>>> David
>>>>>>>
>>>>>>>> Let me know what you think. I can revert this part of the
>>>>>>>> change or reduce the timeout value a bit more.
>>>>>>>>
>>>>>>>> Thank you,
>>>>>>>> Misha
>>>>>>>>>> For this change under review, if I do not hear opinions from
>>>>>>>>>> other reviewers, I can simply delete the print statement.
>>>>>>>>> Sounds good to me.
>>>>>>>>>
>>>>>>>>> Thanks,
>>>>>>>>> David
>>>>>>>>>
>>>>>>>>>> Thank you,
>>>>>>>>>> Misha
>>>>>>>>>>> Thanks,
>>>>>>>>>>> David
>>>>>>>>>>>
>>>>>>>>>>> On 3/11/2017 7:03 AM, mikhailo wrote:
>>>>>>>>>>>> Please review this simple change that makes the error
>>>>>>>>>>>> message in jtreg-ext/requires/VMProps.java conditional
>>>>>>>>>>>> on java property "vmprops.trace.verbose". W/o this
>>>>>>>>>>>> condition an error message is printed each time any jtreg
>>>>>>>>>>>> test is ran, including non-docker tests.
>>>>>>>>>>>>
>>>>>>>>>>>> JBS: https://bugs.openjdk.java.net/browse/JDK-8189213
>>>>>>>>>>>> Webrev:
>>>>>>>>>>>> http://cr.openjdk.java.net/~mseledtsov/8189213.00/
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> ======= Background and details:
>>>>>>>>>>>> VMProps.java is called for each test run of jtreg (be it a
>>>>>>>>>>>> run containing a singe test or multiple tests).
>>>>>>>>>>>> VMProps evaluates the @requires properties. Therefore, in
>>>>>>>>>>>> case of this bug, any time a user runs any jtreg VM test
>>>>>>>>>>>> on a machine w/o an operational docker engine, this error
>>>>>>>>>>>> will pop up.
>>>>>>>>>>>> The fix makes printing of this error message conditional,
>>>>>>>>>>>> off by default. The message can be turend on
>>>>>>>>>>>> via a property vmprops.trace.verbose when detailed
>>>>>>>>>>>> diagnostic info is desired.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> ======== Testing:
>>>>>>>>>>>> Local testing:
>>>>>>>>>>>> W/o docker present:
>>>>>>>>>>>> jtreg <arbitrary-jtreg-test>
>>>>>>>>>>>> No error message
>>>>>>>>>>>> jtreg -Dvmprops.trace.verbose=true
>>>>>>>>>>>> <arbitrary-jtreg-test>
>>>>>>>>>>>> Detailed error message
>>>>>>>>>>>> jtreg DockerBasicTest.java
>>>>>>>>>>>> Test skipped
>>>>>>>>>>>>
>>>>>>>>>>>> With docker installed but no permissions:
>>>>>>>>>>>> jtreg <arbitrary-jtreg-test>
>>>>>>>>>>>> No error message
>>>>>>>>>>>> jtreg -Dvmprops.trace.verbose=true
>>>>>>>>>>>> <arbitrary-jtreg-test>
>>>>>>>>>>>> Detailed error message
>>>>>>>>>>>> jtreg DockerBasicTest.java
>>>>>>>>>>>> Test skipped
>>>>>>>>>>>>
>>>>>>>>>>>> With docker installed and operational:
>>>>>>>>>>>> jtreg <arbitrary-jtreg-test>
>>>>>>>>>>>> No error message
>>>>>>>>>>>> jtreg -Dvmprops.trace.verbose=true
>>>>>>>>>>>> <arbitrary-jtreg-test>
>>>>>>>>>>>> No error message
>>>>>>>>>>>> jtreg DockerBasicTest.java
>>>>>>>>>>>> Test passed
>>>>>>>>>>>>
>>>>>>>>>>>> Testing via automated distributed test system:
>>>>>>>>>>>> - tier1
>>>>>>>>>>>> - docker tests
>>>>>>>>>>>> In progress
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Thank you,
>>>>>>>>>>>> Misha
>>>>>>>>>>>>
>>
More information about the hotspot-runtime-dev
mailing list