[Bug 210191] java/openjdk8: Fix for OpenJDK Network Crash (regression of PR 175417)

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Fri Jun 10 13:57:16 UTC 2016


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=210191

            Bug ID: 210191
           Summary: java/openjdk8: Fix for OpenJDK Network Crash
                    (regression of PR 175417)
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: java at FreeBSD.org
          Reporter: iamasmith.home at gmail.com
          Assignee: java at FreeBSD.org
             Flags: maintainer-feedback?(java at FreeBSD.org)

PR 175417 observed that the change to select() 2 from poll() produced crashes
in java/openjdk7.

This was initially provided as a FreeBSD patch to the bsd-port of OpenJDK and
then was adopted upstream directly into bsd-port.

This change was never added to the jdk8 upstream bsd-port at the OpenJDK
mercurial repo and since the patch was previosuly available ustream from jdk7
it was never added to the jdk8 port either.

The result is that java/openjdk8 is susceptible to crashes on network timesouts
just as java/openjdk7 was.

I have personally observed this in a perormance test environment that could
produce the failure within 10 minutes using 6 Tomcat servers using a JMeter
test for one of our applications as the back end infrastructure started to
saturate and introduce network timeouts.

The source file effected is jdk/src/solaris/native/java/net/bsd_close.c which
requires the conditional switch back to using the poll mechanism if not on an
Apple platform.

This file in the upstream differs only in that it lacks this conditional
handling for NET_Timeout for non Apple platforms so this patch has been
effectively reassembled from that change between the bsd-port/jdk8 and
bsd-port/bsd-port for the java/openjdk8 port.

Ideally this should go upstream into bsd-port/jdk8 but for now it is needed in
the FreeBSD port to stabilise any high throughput network applications that may
suffer frequent NET_Timeout conditions.

Crashes in our environment without the patch under Apache Tomcat 8 result in a
wide variety of SIGBUS and SIGSEGV errors often in GCTaskThread or VMThread.

The patch provided can be applied by simply dropping it into
/usr/ports/java/openjdk8/files prior to a port build.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-java mailing list