-
Bug
-
Resolution: Duplicate
-
P4
-
None
-
8, 9, 10, 11
-
x86_64
-
linux
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
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
- duplicates
-
JDK-8206333 High contention on provider.getService() with large number of TLS connections
- Closed