Strange bug inside jetty at shenandoah/jdk8u
Kirill A. Korinsky
kirill at korins.ky
Tue Dec 19 15:37:47 UTC 2017
Yes, this machine has a limit for docker container. But it is 6Gb.
Anyway, original bug is existed but I can't reproduce it yet on simpler case :(
I can only hide it (or make it rare?) by increasing heap.
--
wbr, Kirill
> On 19 Dec 2017, at 19:30, Aleksey Shipilev <shade at redhat.com> wrote:
>
> On 12/14/2017 11:29 PM, Kirill A. Korinsky wrote:
>> Looks like I found issue that creates strange behaviour and broke starting an application at your
>> fastdebug image
>>
>> ➜ ~docker run --rm -ti shipilev/openjdk:8-shenandoah-fastdebug bash
>> root at 27a293be90b2:/# java -Xmx4096m -Xms4096m -version
>> Killed
>> root at 27a293be90b2:/# java -Xmx4096m -version
>> openjdk version "1.8.0-internal-fastdebug"
>> OpenJDK Runtime Environment (build 1.8.0-internal-fastdebug-jenkins_2017_11_15_05_12-b00)
>> OpenJDK 64-Bit Server VM (build 25.71-b00-fastdebug, mixed mode)
>> root at 27a293be90b2:/# exit
>> exit
>> ➜ ~docker run --rm -ti shipilev/openjdk:8-shenandoah bash
>> root at 10aa56f25cb7:/# java -Xmx4096m -Xms4096m -version
>> openjdk version "1.8.0-internal"
>> OpenJDK Runtime Environment (build 1.8.0-internal-jenkins_2017_11_15_03_20-b00)
>> OpenJDK 64-Bit Server VM (build 25.71-b00, mixed mode)
>> root at 10aa56f25cb7:/# exit
>> exit
>> ➜ ~docker images | grep shenandoah
>> shipilev/openjdk 8-shenandoah-fastdebug ec13bdd01380 4 weeks ago 383MB
>> shipilev/openjdk 8-shenandoah cb7dbc6f6fb9 4 weeks ago 385MB
>> ➜ ~
>>
>> Yes, I just removed `-Xms` from arguments and it helps:
>> - it starts at fastdebug image;
>> - it doesn't crash at ab test.
>
> This is weird, can't reproduce it. I guess this means JVM is blowing per-container memory limits,
> and then gets killed by OOM killer. It explains why only fastdebug builds are failing: they zap the
> heap with magic values and thus commit all the memory in. When -Xms4g is set, it overflows the limit
> and gets killed. When -Xms is not set, we commit less, and do not blow up. With release bits, we
> "commit" the heap with -Xms4g, but Linux memory subsystem does not actually allocate pages until we
> write into them.
>
> If that is true, then -XX:+AlwaysPreTouch with release builds would also fail.
>
> Thanks,
> -Aleksey
>
More information about the shenandoah-dev
mailing list