Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8240827

Downport SSLSocketImpl.java from "8221882: Use fiber-friendly java.util.concurrent.locks in JSSE"

    Details

      Description

      Bring SSLSocketImpl parts of 8221882 to 11.0.8 to foster downporting of JDK-8219991

      "8209333: Socket reset issue for TLS 1.3 socket close" [1]
      should be downported for parity with 11.0.8-oracle.

      "8219991: New fix of the deadlock in
      sun.security.ssl.SSLSocketImpl" [3], is a follow-up that fixes an issue
      introduced by [1]. This should be brought to 11.0.8 along with [1].

      [1] applies clean to jdk11u-dev.
      Unfortunately, [3] does not apply at all.

      In jdk13 a major rework of JSSE was done:
      [2] "8221882: Use fiber-friendly java.util.concurrent.locks in JSSE"

      [2] removes the synchronized keywords from a lot of functions
      in JSSE and replaces them by manual locking. [3] exploits
      the new control flow within these reworked functions in
      SSLSocketImpl.java. It needs to be designed differently
      to apply directly on top of [1].

      Instead, I propose to downport the changes of [2] to the only
      file touched by [3], SSLSocketImpl.java. This is the purpose of this task.

      I took the patch of [2] for SSLSocketImpl.java and patched
      it on top of [1] to jdk11u-dev. It applies clean. On top
      of this, [3] applies clean, too.

      The SSLSocketImpl.java part of [2] uses a public lock
      introduced in OutputRecord. I revoked this part of the change
      as the changes to OutputRecord are not important here, so
      it'd like to skip them. Here the partial webrev of the
      revoked code:
      http://cr.openjdk.java.net/~goetz/wr20/8240827-Downport_SSLSocketImpl_from_8221882-jdk11/01-revoked/src/java.base/share/classes/sun/security/ssl/SSLSocketImpl.java.udiff.html

      I'm not opening this issue as Backport for 8221882, as it only contains a subset of this change.

      The locks introduced by [2] in SSLSocketImpl.java are private,
      so there is no direct dependency to them in other code.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                goetz Goetz Lindenmaier
                Reporter:
                goetz Goetz Lindenmaier
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: