maintainer-feedback requested: [Bug 282251] java/openjdk22: IPv6 / INET6 is broken
- In reply to: bugzilla-noreply_a_freebsd.org: "[Bug 282251] java/openjdk22: IPv6 / INET6 is broken"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 21 Oct 2024 15:38:12 UTC
Bugzilla Automation <bugzilla@FreeBSD.org> has asked freebsd-java (Nobody)
<java@FreeBSD.org> for maintainer-feedback:
Bug 282251: java/openjdk22: IPv6 / INET6 is broken
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=282251
--- Description ---
In java/openjdk22 IPv6 is broken, in java/openjdk17 it was working. I did not
try any openjdk's in between.
To be more specific in openjdk17 started with default settings, INET6 doesn't
work. However with -Djava.net.preferIPv4Stack=false INET, INET6 and unspecified
protocols all work.
In openjdk22 started with default settings, INET6 doesn't work. With
-Djava.net.preferIPv4Stack=false no internet protocols work.
These issues can be reproduced with the java code
// Test unspecified protocol
try {
ServerSocket ss = new ServerSocket(0);
Socket cs = new Socket(ss.getInetAddress(), ss.getLocalPort());
OutputStream os = cs.getOutputStream();
InputStream is = cs.getInputStream();
Socket as = ss.accept();
System.out.println("Connected " + cs + " to " + as);
ss.close();
cs.close();
as.close();
} catch (IOException ex) {
System.err.println("Failed to connect to localhost with unspecified
protocol");
ex.printStackTrace();
}
// Test INET (IPv6)
try {
InetAddress addr = InetAddress.getByName("127.0.0.1");
ServerSocket ss = new ServerSocket(0, 1, addr);
Socket cs = new Socket(ss.getInetAddress(), ss.getLocalPort());
OutputStream os = cs.getOutputStream();
InputStream is = cs.getInputStream();
Socket as = ss.accept();
System.out.println("Connected " + cs + " to " + as);
ss.close();
cs.close();
as.close();
} catch (IOException ex) {
System.err.println("Failed to connect to localhost with INET");
ex.printStackTrace();
}
// Test INET6
try {
InetAddress addr = InetAddress.getByName("::0");
ServerSocket ss = new ServerSocket(0, 1, addr);
Socket cs = new Socket(ss.getInetAddress(), ss.getLocalPort());
OutputStream os = cs.getOutputStream();
InputStream is = cs.getInputStream();
Socket as = ss.accept();
System.out.println("Connected " + cs + " to " + as);
ss.close();
cs.close();
as.close();
} catch (IOException ex) {
System.err.println("Failed to connect to localhost with INET6");
ex.printStackTrace();
}