RFR [XS] : 8229182: runtime/containers/docker/TestMemoryAwareness.java test fails on SLES12

Severin Gehwolf sgehwolf at redhat.com
Wed Aug 7 14:18:21 UTC 2019


Hi Matthias,

On Wed, 2019-08-07 at 13:55 +0000, Baesken, Matthias wrote:
> Hi  Severin, sure I'll add the comment .
> 
> Btw  we noticed  that on some machines  we  (even with this patch)   get  an exit value  of 137   and not  1  .
> Do  you think this can be seen as a  successful test  end  (means - we could test for  exit value 137 too ?)   or not ?
> It look similar to  what people saw here :

Yes, I've seen this before (137 exit code). Non-zero is a successful
test if other output matches. So perhaps this?

OutputAnalyzer out = DockerTestUtils.dockerRunJava(opts);
if (out.getExitValue() == 0) {
   throw RuntimeException("OOM not triggered?");
}
out.shouldContain("Entering AttemptOOM main")
   .shouldNotContain("AttemptOOM allocation successful")
   .shouldContain("java.lang.OutOfMemoryError");

Thanks,
Severin

> 
> https://stackoverflow.com/questions/38967991/why-are-my-gradle-builds-dying-with-exit-code-137
> 
> "In cases where virtual memory is running short the kernel OOM (Out of Memory) killer may forcibly kill Jenkins or individual builds.
>  If this occurs on Linux you may see builds terminate with exit code 137 (128 + signal number for SIGKILL)."
> 
> 
> Best regards, Matthias
> 
> 
> > -----Original Message-----
> > From: Severin Gehwolf <sgehwolf at redhat.com>
> > Sent: Mittwoch, 7. August 2019 11:38
> > To: Baesken, Matthias <matthias.baesken at sap.com>; 'hotspot-
> > dev at openjdk.java.net' <hotspot-dev at openjdk.java.net>
> > Subject: Re: RFR [XS] : 8229182:
> > runtime/containers/docker/TestMemoryAwareness.java test fails on SLES12
> > 
> > Hi Matthias,
> > 
> > On Wed, 2019-08-07 at 07:23 +0000, Baesken, Matthias wrote:
> > > Hello, please review the following small change .
> > > 
> > > The docker test  TestMemoryAwareness.java  failed on our ppc64le  SLES12
> > Linux machine .
> > > It could  not successfully   trigger the expected  OOM ,  error message is :
> > > 
> > > java.lang.RuntimeException: Expected to get exit value of [1]
> > > 
> > > at
> > jdk.test.lib.process.OutputAnalyzer.shouldHaveExitValue(OutputAnalyzer.ja
> > va:396)
> > > at TestMemoryAwareness.testOOM(TestMemoryAwareness.java:106)
> > > at TestMemoryAwareness.main(TestMemoryAwareness.java:63)
> > > at
> > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
> > Method)
> > > at
> > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMet
> > hodAccessorImpl.java:62)
> > > at
> > java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Delega
> > tingMethodAccessorImpl.java:43)
> > > at java.base/java.lang.reflect.Method.invoke(Method.java:566)
> > > at
> > com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapp
> > er.java:127)
> > > at java.base/java.lang.Thread.run(Thread.java:834)
> > > 
> > > 
> > > After some discussion with Bob Vandette how to make the test more
> > robust ,
> > > we  looked into additionally  setting   -memory-swappiness   to   0  to
> > disable anonymous page swapping.
> > > 
> > > 
> > > https://docs.docker.com/config/containers/resource_constraints/#--
> > memory-swappiness-details
> > > 
> > > The test passes with this added setting.
> > > 
> > > 
> > > Bug/webrev :
> > > 
> > > https://bugs.openjdk.java.net/browse/JDK-8229182
> > > 
> > > http://cr.openjdk.java.net/~mbaesken/webrevs/8229182.0/
> > 
> > This looks OK. Could you please add a comment for the memory-swappiness
> > addition. Suggestion:
> > 
> > """
> > Add "--memory-swappiness 0" so as to disable anonymous page swapping.
> > """
> > 
> > Thanks,
> > Severin



More information about the hotspot-dev mailing list