weblogic: ONE thread cause CPU soaring(50%+),NEVER die,why?
704796Jun 3 2009 — edited Jun 3 2009hi,
My environment is as follows:
-----------------------------------
APPSERVER: weblogic 8.1.4 sp4
JDK: IBM jdk1.4
OS: AIX 5.3
DB: oracle
-----------------------------------
our app model is as follows:
-----------------------------------
user | server | cluster
-----------------------------------
user1 \************/server1
user2 -- proxy server -- server2
user3 / ***********\server3
(https) (http)
-----------------------------------
the proxy server and server1/2/3 are all in one domain(server1/2/3 one cluster),
once we restart the proxy server,everything looks fine,but 1 or 2 days
later,the CPU start soaring,from 10~20% to 50%(proxy server cpu usage),
however,the server1/2/3 are all healty(cpu not high),if we restart server1/2/3
the problem still exist, and after some time,the cpu would be up to 90%+,then
we MUST restart the proxy server,then everything ok again.
Now the cpu is 50%+,we checked the proxy server's active threads,and found ONE
thread whose id is 252 continue exist and the request never change during one day.
the thread state is :
252 13262 weblogic.t3.srvr.SSLListenThread$1@2778a170 n/a n/a
then we get the thread dump by kill -3,we get this info about this thread:
------------------------
at 0xD3764B18 in
"ExecuteThread: '252' for queue: 'weblogic.kernel.Default'" (TID:0x300C2168, sys_thread_t:0x7E6F08A8, state:R, native ID:0x10506) prio=5
at com.rsa.jsafe.JCMPInt.addVectors(Unknown Source)
at com.rsa.jsafe.JCMPInt.addInPlace(Unknown Source)
at com.rsa.jsafe.JCMPInt.subtractSigned(Unknown Source)
at com.rsa.jsafe.JCMPInt.modInvertSchroeppel(Unknown Source)
at com.rsa.jsafe.JCMPInt.modInvert(Unknown Source)
at com.rsa.jsafe.JA_RSA.generateBlindingValues(Unknown Source)
at com.rsa.jsafe.JA_RSA.generateBlindingValuesBuffer(Unknown Source)
at com.rsa.jsafe.JA_RSAPrivateKey.getKeyDataBlind(Unknown Source)
at com.rsa.jsafe.JA_RSAPrivateKey.getKeyData(Unknown Source)
at com.rsa.jsafe.JA_KeyData.getKeyData(Unknown Source)
at com.rsa.jsafe.JA_RSA.generalDecryptInit(Unknown Source)
at com.rsa.jsafe.JA_RSA.decryptInit(Unknown Source)
at com.rsa.jsafe.JG_AsymmetricCipher.doDecryptInit(Unknown Source)
at com.rsa.jsafe.JSAFE_AsymmetricCipher.decryptInit(Unknown Source)
at com.rsa.jsafe.JSAFE_AsymmetricCipher.decryptInit(Unknown Source)
at com.certicom.tls.provider.cipher.JSAFE_RSA.init(Unknown Source)
at com.certicom.tls.record.handshake.ServerStateSentHelloDone.handle(Unknown Source)
at com.certicom.tls.record.handshake.HandshakeHandler.handleHandshakeMessage(Unknown Source)
at com.certicom.tls.record.handshake.HandshakeHandler.handleHandshakeMessages(Unknown Source)
at com.certicom.tls.record.MessageInterpreter.interpretContent(Unknown Source)
at com.certicom.tls.record.MessageInterpreter.decryptMessage(Unknown Source)
at com.certicom.tls.record.ReadHandler.processRecord(Unknown Source)
at com.certicom.tls.record.ReadHandler.readRecord(Unknown Source)
at com.certicom.tls.record.ReadHandler.readUntilHandshakeComplete(Unknown Source)
at com.certicom.tls.interfaceimpl.TLSConnectionImpl.completeHandshake(Unknown Source)
at javax.net.ssl.impl.SSLSocketImpl.startHandshake(Unknown Source)
at com.bea.sslplus.CerticomSSLContext.forceHandshakeOnAcceptedSocket(Unknown Source)
at weblogic.security.utils.SSLContextWrapper.forceHandshakeOnAcceptedSocket(SSLContextWrapper.java(Compiled Code))
at weblogic.t3.srvr.SSLListenThread$1.execute(SSLListenThread.java(Compiled Code))
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java(Compiled Code))
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java(Compiled Code))
------------------------------------------------------------------------------------
we start google,but nothing found about this problem.The only way to solve this problem now is to restart
the proxy server,can anyone help me to solve this problem? any response is appreciated!!!
cowrie / 2009-6-3
Edited by: user11225344 on 2009-6-3 上午1:20