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

Objects locks held during SSL Socket close and waits for server close notify only with TLSv1.3

XMLWordPrintable

      ADDITIONAL SYSTEM INFORMATION :
      Java 11.0.16.1

      A DESCRIPTION OF THE PROBLEM :
      Multiple threads are blocked at
      1. at sun.net.www.http.KeepAliveCache.put(java.base@11.0.16.1/KeepAliveCache.java:89)
      2. at sun.net.www.http.KeepAliveCache.get(java.base@11.0.16.1/KeepAliveCache.java:152)

      waiting to lock some objects. These objects are held by other threads which are waiting to read data from socket to during the close operation

      at java.net.SocketInputStream.socketRead0(java.base@11.0.16.1/Native Method)
      at java.net.SocketInputStream.socketRead(java.base@11.0.16.1/SocketInputStream.java:115)
      at java.net.SocketInputStream.read(java.base@11.0.16.1/SocketInputStream.java:168)
      at java.net.SocketInputStream.read(java.base@11.0.16.1/SocketInputStream.java:140)
      at java.net.SocketInputStream.read(java.base@11.0.16.1/SocketInputStream.java:200)
      at sun.security.ssl.SSLSocketInputRecord.deplete(java.base@11.0.16.1/SSLSocketInputRecord.java:498)
      at sun.security.ssl.SSLSocketImpl$AppInputStream.readLockedDeplete(java.base@11.0.16.1/SSLSocketImpl.java:1128)
      at sun.security.ssl.SSLSocketImpl$AppInputStream.deplete(java.base@11.0.16.1/SSLSocketImpl.java:1102)
      at sun.security.ssl.SSLSocketImpl.bruteForceCloseInput(java.base@11.0.16.1/SSLSocketImpl.java:727)
      at sun.security.ssl.SSLSocketImpl.duplexCloseOutput(java.base@11.0.16.1/SSLSocketImpl.java:579)
      at sun.security.ssl.SSLSocketImpl.close(java.base@11.0.16.1/SSLSocketImpl.java:503)
      at sun.net.www.http.HttpClient.closeServer(java.base@11.0.16.1/HttpClient.java:1092)
      at sun.net.www.http.ClientVector.put(java.base@11.0.16.1/KeepAliveCache.java:252)
      - locked <0x00000006e1418cd8> (a sun.net.www.http.ClientVector)
      at sun.net.www.http.KeepAliveCache.put(java.base@11.0.16.1/KeepAliveCache.java:125)
      - locked <0x00000006d7899b18> (a sun.net.www.http.KeepAliveCache)
      at sun.net.www.protocol.https.HttpsClient.putInKeepAliveCache(java.base@11.0.16.1/HttpsClient.java:658)
      at sun.net.www.http.HttpClient.finished(java.base@11.0.16.1/HttpClient.java:440)
      at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(java.base@11.0.16.1/HttpURLConnection.java:1880)
      - locked <0x0000000746371d10> (a sun.net.www.protocol.https.DelegateHttpsURLConnection)
      at sun.net.www.protocol.http.HttpURLConnection.getInputStream(java.base@11.0.16.1/HttpURLConnection.java:1520)
      - locked <0x0000000746371d10> (a sun.net.www.protocol.https.DelegateHttpsURLConnection)
      at java.net.HttpURLConnection.getResponseCode(java.base@11.0.16.1/HttpURLConnection.java:527)
      at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(java.base@11.0.16.1/HttpsURLConnectionImpl.java:334)
      at org.glassfish.jersey.client.internal.HttpUrlConnector._apply(HttpUrlConnector.java:378)
      at org.glassfish.jersey.client.internal.HttpUrlConnector.apply(HttpUrlConnector.java:277)
      at org.glassfish.jersey.client.ClientRuntime.lambda$null$6(ClientRuntime.java:182)
      at org.glassfish.jersey.client.ClientRuntime$$Lambda$1458/0x0000000800eb4840.run(Unknown Source)
      at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)
      at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)
      at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
      at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
      at org.glassfish.jersey.internal.Errors.process(Errors.java:244)
      at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:288)
      at org.glassfish.jersey.client.ClientRuntime.lambda$createRunnableForAsyncProcessing$7(ClientRuntime.java:156)
      at org.glassfish.jersey.client.ClientRuntime$$Lambda$1455/0x0000000800eb3c40.run(Unknown Source)
      at java.util.concurrent.Executors$RunnableAdapter.call(java.base@11.0.16.1/Executors.java:515)
      at java.util.concurrent.FutureTask.run(java.base@11.0.16.1/FutureTask.java:264)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@11.0.16.1/ThreadPoolExecutor.java:1128)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@11.0.16.1/ThreadPoolExecutor.java:628)
      at java.lang.Thread.run(java.base@11.0.16.1/Thread.java:834)



      CUSTOMER SUBMITTED WORKAROUND :
      Disable TLS1.3

      FREQUENCY : always


            tongwan Andrew Wang
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: