Package: linux-image-6.12.33+deb13-amd64cgroupv2
Version: 6.12.33-1
By default kernel 6.12 dropped some deprecated features around
support. This affects openjdk 21 and older, seecontainer
https://bugs.openjdk.org/browse/JDK-8347811 > https://bugs.debian.org/1107967
This is fatal: Using cgroupv2 openjdk 21 doesn't recognize the
limits by default anymore, the Java GC is not run since there seems to
be plenty of memory, and the Java app runs into the container's memory
limit and is killed with OOM.
openjdk 25 has been fixed, AFAICT.
Workaround is to configure the kernel with
CONFIG_CPUSETS_V1=y
CONFIG_MEMCG_V1=y
to bring back the deprecated features.
I would like to suggest to re-enable the deprecated features in the
kernel. It is pretty much unlikely that openjdk 21 is fixed in time
for Trixie. Not to mention the kernel backport to Bookworm.
This is fatal: Using cgroupv2 openjdk 21 doesn't recognize the container limits by default anymore, the Java GC is not run since there seems to
be plenty of memory, and the Java app runs into the container's memory
limit and is killed with OOM.
openjdk 25 has been fixed, AFAICT.
Thank you for bringing this to our attention.
I don't think it makes sense for us to re-enable cgroups v1, given that
it has been deprecated for so long and OpenJDK itself can use v2.
I will look into whether we can instead provide only a /proc/cgroups
file, which seems to be all that OpenJDK actually needed.
Thank you for bringing this to our attention.
I don't think it makes sense for us to re-enable cgroups v1, given that
it has been deprecated for so long and OpenJDK itself can use v2.
I will look into whether we can instead provide only a /proc/cgroups
file, which seems to be all that OpenJDK actually needed.
Ben Hutchings wrote:
Thank you for bringing this to our attention.
I don't think it makes sense for us to re-enable cgroups v1, given that
it has been deprecated for so long and OpenJDK itself can use v2.
You are right, it's been deprecated for quite some time, and this is
clearly a bug in openjdk, but currently there is no better version of
JDK21. I am not sure what you mean by "OpenJDK itself can use v2".
I will look into whether we can instead provide only a /proc/cgroups
file, which seems to be all that OpenJDK actually needed.
How is this supposed to work? Since we are talking about the host system
here you cannot know how /proc was mounted in the container, which
Container framework is involved, or whether the container is based on
Debian at all.
tag -1 patchBug #1108294 [src:linux] kernel 6.12 breaks cgroup awareness of openjdk 21 Added tag(s) patch.
On Thu, 2025-06-26 at 18:24 +0200, Ben Hutchings wrote:
[...]
Thank you for bringing this to our attention.
I don't think it makes sense for us to re-enable cgroups v1, given that
it has been deprecated for so long and OpenJDK itself can use v2.
I will look into whether we can instead provide only a /proc/cgroups
file, which seems to be all that OpenJDK actually needed.
In fact this may be as simple as reverting:
commit af000ce85293b8e608f696f0c6c280bc3a75887f
Author: Michal Koutný <mkoutny@suse.com>
Date: Mon Sep 9 18:32:23 2024 +0200
cgroup: Do not report unavailable v1 controllers in /proc/cgroups
but I have not yet tested that.
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 546 |
Nodes: | 16 (0 / 16) |
Uptime: | 169:41:43 |
Calls: | 10,385 |
Calls today: | 2 |
Files: | 14,057 |
Messages: | 6,416,555 |