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

With heavy load of SSL handshakes, the application gets stuck on java.security.Provider.getService(String, String)

XMLWordPrintable

      ADDITIONAL SYSTEM INFORMATION :
      Ubuntu 16.04.3 LTS
      java version "1.8.0_172"
      Java(TM) SE Runtime Environment (build 1.8.0_172-b11)
      Java HotSpot(TM) 64-Bit Server VM (build 25.172-b11, mixed mode)

      A DESCRIPTION OF THE PROBLEM :
      With heavy load of many ssl handshakes using apache http-client, the application hangs. Here is a link to JFR snapshot https://www.dropbox.com/s/cpgx406vkqpvc80/2018-06-25_08-11-23.jfr.zip?dl=0 where

      java.security.Provider.getService(String, String)
         sun.security.jca.ProviderList$ServiceList.tryGet(int)
            sun.security.jca.ProviderList$ServiceList.access$200(ProviderList$ServiceList, int)
               sun.security.jca.ProviderList$ServiceList$1.hasNext()

      average call is 5.5 sec.

      Stack Trace Count Duration
      java.security.Provider.getService(String, String) 34,119 167,513,413,751,896
         sun.security.jca.ProviderList$ServiceList.tryGet(int) 17,642 87,721,088,998,037
            sun.security.jca.ProviderList$ServiceList.access$200(ProviderList$ServiceList, int) 17,642 87,721,088,998,037
               sun.security.jca.ProviderList$ServiceList$1.hasNext() 17,642 87,721,088,998,037
                  javax.crypto.KeyGenerator.nextSpi(KeyGeneratorSpi, boolean) 6,009 29,975,333,754,681
                     javax.crypto.KeyGenerator.<init>(String) 6,009 29,975,333,754,681
                        javax.crypto.KeyGenerator.getInstance(String) 6,009 29,975,333,754,681
                           sun.security.ssl.JsseJce.getKeyGenerator(String) 6,009 29,975,333,754,681
                              sun.security.ssl.HandshakeMessage$Finished.getFinished(HandshakeHash, int, SecretKey)
      sun.security.ssl.HandshakeMessage$Finished.<init>(ProtocolVersion, HandshakeHash, int, SecretKey, CipherSuite) 1,582 7,560,092,837,932
      sun.security.ssl.ClientHandshaker.sendChangeCipherAndFinish(boolean) 1,061
      sun.security.ssl.ClientHandshaker.serverHelloDone(HandshakeMessage$ServerHelloDone)
      sun.security.ssl.ClientHandshaker.processMessage(byte, int)
      sun.security.ssl.Handshaker.processLoop()
      sun.security.ssl.Handshaker.process_record(InputRecord, boolean)
      sun.security.ssl.SSLSocketImpl.readRecord(InputRecord, boolean)
      sun.security.ssl.SSLSocketImpl.performInitialHandshake()
      sun.security.ssl.SSLSocketImpl.startHandshake(boolean)
      sun.security.ssl.SSLSocketImpl.startHandshake() org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(Socket, String, int, HttpContext)



      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      each time after 3 days of application work.


      CUSTOMER SUBMITTED WORKAROUND :
      restart application.

      FREQUENCY : always


            Unassigned Unassigned
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: