A few places in native code tries to create a socket with PF_INET, then check if a socket or TCP option is supported. E.g. in LinuxSocketOptions.c:
static jint socketOptionSupported(jint level, jint optname) {
jint one = 1;
jint rv, s;
socklen_t sz = sizeof (one);
s = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
if (s < 0) {
return 0;
}
rv = getsockopt(s, level, optname, (void *) &one, &sz);
...
}
On systems that only supports IPv6, the socket(PF_INET, ...) call fails, and it will incorrectly report those options are unsupported. Affected options include: SO_REUSEPORT, TCP_KEEPIDLE, TCP_KEEPCNT, TCP_QUICKACK.