RFR(XS): 8189213: [TESTBUG] Running jtreg tests on machine without docker shows extra message
Mikhailo Seledtsov
mikhailo.seledtsov at oracle.com
Thu Nov 9 04:04:52 UTC 2017
Thank you,
Misha
On 11/8/17, 5:40 PM, David Holmes wrote:
> On 9/11/2017 1:22 AM, mikhailo wrote:
>>
>>
>> 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?
>
> Yes - and this is a trivial change so only one review needed.
>
> Thanks,
> David
>
>>
>> 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