Details
-
Bug
-
Resolution: Fixed
-
P4
-
8, 11, 17
-
b20
Backports
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8266425 | 11.0.12 | Aleksey Shipilev | P4 | Resolved | Fixed | b01 |
Description
Running hotspot_containers tests at current Xubuntu 20.04 fails with glibc incompatibility error like this:
$ CONF=linux-x86_64-server-fastdebug make images test TEST=hotspot_containers
STDERR:
stdout: [Error: dl failure on line 542
Error: failed /jdk/lib/server/libjvm.so, because /lib64/libm.so.6: version `GLIBC_2.27' not found (required by /jdk/lib/server/libjvm.so)
];
stderr: []
exitValue = 6
AFAIU, this means that the host glibc (and thus what the tested JDK is using) is newer than the glibc in the image (needed by /lib64/libm.so).
AfterJDK-8221342, the current image version is selected by:
switch (Platform.getOsArch()) {
case "aarch64":
case "ppc64le":
case "s390x":
return "latest";
default:
return "7.6";
}
I think it would make sense to default to "latest" Ubuntu, so that we get the image with the latest glibc. Which would get much higher chance to work on all hosts, because it would have higher chance to be at least as new as the host glibc. There is still the option to select the image that fits a particular system, but the default should catch as much as possible.
Unfortunately, even the latest oraclelinux:8.3 does not have a glibc that is modern enough to cater for recent Ubuntu desktops.
$ CONF=linux-x86_64-server-fastdebug make images test TEST=hotspot_containers
STDERR:
stdout: [Error: dl failure on line 542
Error: failed /jdk/lib/server/libjvm.so, because /lib64/libm.so.6: version `GLIBC_2.27' not found (required by /jdk/lib/server/libjvm.so)
];
stderr: []
exitValue = 6
AFAIU, this means that the host glibc (and thus what the tested JDK is using) is newer than the glibc in the image (needed by /lib64/libm.so).
After
switch (Platform.getOsArch()) {
case "aarch64":
case "ppc64le":
case "s390x":
return "latest";
default:
return "7.6";
}
I think it would make sense to default to "latest" Ubuntu, so that we get the image with the latest glibc. Which would get much higher chance to work on all hosts, because it would have higher chance to be at least as new as the host glibc. There is still the option to select the image that fits a particular system, but the default should catch as much as possible.
Unfortunately, even the latest oraclelinux:8.3 does not have a glibc that is modern enough to cater for recent Ubuntu desktops.
Attachments
Issue Links
- backported by
-
JDK-8266425 Use the latest Ubuntu base image version in Docker testing
- Resolved
- relates to
-
JDK-8221342 [TESTBUG] Generate Dockerfile for docker testing
- Resolved