[PING] RFR [XS]: 8244500: jtreg test error in test/hotspot/jtreg/containers/docker/TestMemoryAwareness.java

Bob Vandette bob.vandette at oracle.com
Thu Jun 18 16:09:01 UTC 2020


I fired up my cgroupv2 configured system and confirmed that getMemoryAndSwapLimit will indeed return -1
if the kernel does not have swap accounting enabled so I’m ok with your change.

The memory.swap.* files are not present in the /sys/fs/cgroup file system which causes -1 to be returned.

I agree that the fix for JDK-8236617 is no longer needed.

Sorry for the delay,
Bob.


> On Jun 17, 2020, at 10:29 AM, Severin Gehwolf <sgehwolf at redhat.com> wrote:
> 
> On Wed, 2020-06-17 at 09:09 -0400, Bob Vandette wrote:
>> Should we just accept the kernel error message rather than add all the additional value checking?
>> 
>>     "out.shouldContain("Your kernel does not support swap limit capabilities”);
> 
> I'd prefer to keep the other checks as well. The bug explains why that
> is and if we see a config which fails this as well, something is wrong.
> Hopefully that makes some sense.
> 
>> Why isn’t the try block around the check for .shouldMatch("OperatingSystemMXBean\\.getFreeSwapSpaceSize: [1-9][0-9]+”);
> 
> Why should it? For most set ups this catch block is never reached. The
> only setup we are aware of which reaches this is the system Matthias
> runs tests on. I've never heard of a system where this fails as well.
> 
>> Why doesn’t this call fail as well??
> 
> Because the system values are being used for
> OperatingSystemMXBean.getTotalSwapSpaceSize() when:
> Metrics.getMemoryLimit() > 0 && Metrics.getMemoryAndSwapLimit() == -1
> 
>> Have you tried this test on a system with cgrouopv1 and v2 that doesn’t have swap enabled?
> 
> I don't think so. I don't have access to such a system.
> 
> How do you mean, though? A system which has swap disabled on the system
> level or a container without swap? I believe the former is exactly the
> case of Matthias' system. But I don't know. The latter should also be
> covered via a test Jie added a while back.
> 
>> I’m concerned that we’ll be back to fixing this when some other configuration combination fails.
> 
> I understand but find it unlikely. Those are systems which are going to
> be hard to detect correctly and do-the-right-thing. As mentioned in the
> bug there is no way to distinguish between unlimited swap + a memory
> limit from kernel-doesn't-support-swap-limits + a memory limit.
> 
> Note that https://bugs.openjdk.java.net/browse/JDK-8236617 "fixed" this
> for the old implementation. Unfortunately, it doesn't seem like it was
> investigated why a 0 limit was being returned. That was when the old
> implementation was still in place (prior cgroups v2 support). In the
> old impl, when files were missing 0 was returned for some cases. In
> fact, the fix of JDK-8236617 with the old impl would have wrongly
> returned 0 for getTotalSwapSpaceSize() for a system which got
> configured with unlimited swap size (--memory-swap=-1). In the new
> impl, this returns physical swap size which seems better.
> 
> On that note, the code of JDK-8236617 seems unreachable now.
> 
> Thanks,
> Severin
> 
> 
>> Bob.
>> 
>> 
>>> On Jun 17, 2020, at 5:13 AM, Severin Gehwolf <sgehwolf at redhat.com> wrote:
>>> 
>>> On Fri, 2020-06-05 at 16:07 +0200, Severin Gehwolf wrote:
>>>> On Fri, 2020-06-05 at 10:30 +0000, Baesken, Matthias wrote:
>>>>>> Here would be my suggestion
>>>>>> (hopefully this one isn't too restrictive again):
>>>>>> http://cr.openjdk.java.net/~sgehwolf/webrevs/JDK-8244500/03/webrev/
>>>>> 
>>>>> Hi Severin, this worked nicely .
>>>>> Thanks for providing this .
>>>> 
>>>> Great. If somebody else is willing to OK this, I'll push it.
>>> 
>>> Could I have a second review of this, please? I believe it's the best
>>> we can do for this test failure Matthias is seeing.
>>> 
>>> Thanks,
>>> Severin
>>> 
> 



More information about the hotspot-dev mailing list