openjdk-17-jre-headless 17.0.10+7-1~22.04.1: segfault in jspawnhelper
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
openjdk-17 (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
unattended-upgrades (Ubuntu) |
Confirmed
|
Undecided
|
Unassigned |
Bug Description
We recently upgraded a bunch of Jenkins build machines that run Ubuntu 22.04.04 LTS to openjdk-
$ /bin/sh -xe /tmp/jenkins128
FATAL: command execution failed
java.io.
at java.base/
at java.base/
at java.base/
at java.base/
Also: hudson.
at hudson.
at hudson.
at hudson.
at hudson.
at hudson.
at hudson.
at hudson.
at hudson.
at hudson.
at hudson.
at hudson.
at hudson.
at hudson.
at hudson.
at hudson.
at hudson.
I'm unsure how Jenkins's agent exactly invokes jspawnhelper, but I assume it just uses Java's regular API to run external processes, as shown in the above stack trace. I.e. it uses java.lang.
In any case, with 17.0.10+7-1~22.04.1 this almost always results in a segfault now, which the previous version of openjdk-
For now, I have downgraded to the release version, which is 17.0.2+8-1, since the previous security update version has disappeared from the Ubuntu mirrors.
I have not yet dug any deeper since I have a lack of time to spend on it, but I wanted to make this bug report so other people experiencing this might be able to find it on Launchpad.
Changed in unattended-upgrades (Ubuntu): | |
status: | New → Confirmed |
Hi,
process spawning works (both jtreg tests and a small reproducer below): "ls", "-alrt", "/tmp").start();
p.waitFor( );
---
public class Test {
public static void main(String[] args) throws Throwable {
Process p = new ProcessBuilder(
}
}
---
but there were changes in jspawnhelper that might be triggering the crash.
Now it expects the child data to be passed through argv[1] - see [1].
I will try to set up jenkins environment to see if I can reproduce it.
[1] https:/ /github. com/openjdk/ jdk17u/ commit/ cd6cb730c934d8e 16d4bd8e3342e59 e806f158f9