RFR(XS): 8227317: [TESTBUG] jdk docker/TestDockerMemoryMetrics.java fails on systems w/o kernel memory accounting
Leonid Mesnik
leonid.mesnik at oracle.com
Thu Oct 24 17:49:32 UTC 2019
Looks good.
Leonid
> On Oct 23, 2019, at 5:25 PM, mikhailo.seledtsov at oracle.com wrote:
>
> Here is the updated webrev: http://cr.openjdk.java.net/~mseledtsov/8227317.02/
>
>
> Thanks,
>
> Misha
>
> On 10/23/19 3:26 PM, mikhailo.seledtsov at oracle.com wrote:
>> Hi Severin,
>>
>> On 10/23/19 2:08 AM, Severin Gehwolf wrote:
>>> Hi Misha,
>>>
>>> On Tue, 2019-10-22 at 11:50 -0700, mikhailo.seledtsov at oracle.com wrote:
>>>> Please review this change that adds extra check for test case
>>>> testKernelMemoryLimit(). If system does not support kernel memory
>>>> accounting then verification for this test case is skipped.
>>>>
>>>> JBS: https://bugs.openjdk.java.net/browse/JDK-8227317
>>>> Webrev: http://cr.openjdk.java.net/~mseledtsov/8227317.01/
>>> 123 OutputAnalyzer oa = DockerTestUtils.dockerRunJava(opts);
>>> 124 if (oa.getStderr().contains("kernel memory accounting disabled")) {
>>> 125 System.out.println("Kernel memory accounting disabled on this system, " +
>>> 126 "skipping the test case");
>>> 127 return;
>>> 128 }
>>> 129 oa.shouldHaveExitValue(0).shouldContain("TEST PASSED!!!");
>>> 130 }
>>>
>>> From what I understand this message comes from some container runtimes
>>> (runc in this case), right? It seems to be a case where the system
>>> potentially has kernel memory accounting, but the container runtime was
>>> compiled without support for it. Have you checked whether systems where
>>> the test fails also have 'cgroup.memory=nokmem' as kernel
>>> commandline[1]?
>>
>> I am not sure, could be either case. In any case, the tests should be able to handle this type of error.
>>
>> Perhaps, I should change the message to simply echo the original message from the docker command: "Kernel memory accounting disabled, skipping test case",
>>
>> that is w/o mentioning "on this system".
>>
>>
>>> In either case it seems diligent to add a comment prior the if.
>>>
>>> Suggestion:
>>>
>>> OutputAnalyzer oa = DockerTestUtils.dockerRunJava(opts);
>>> // Some container runtimes (e.g. runc, docker 18.09)
>>> // have been built without kernel memory accounting. In
>>> // that case, the runtime issues a message on stderr saying
>>> // so. Skip the test in that case.
>>> if (oa.getStderr().contains("kernel memory accounting disabled")) {
>>
>> Thanks. I will add the comment that you recommend.
>>
>> Thank you,
>>
>> Misha
>>
>>>
>>> Thanks,
>>> Severin
>>>
>>> [1] cat /proc/cmdline | grep cgroup.memory=nokmem
>>>
>>>> Testing:
>>>> 1. Ran the test on systems with disabled kernel memory
>>>> accounting before and after the fix - fix works
>>>> 2. Ran the test case 60 times on multiple Linux-x64 systems - no
>>>> failures
>>>>
>>>>
>>>> Thank you,
>>>> Misha
>>>>
More information about the hotspot-runtime-dev
mailing list