Some TLS ciphersuite configurations result in 100% CPU utilization
------------------------------------------------------------------

                 Key: CXF-1222
                 URL: https://issues.apache.org/jira/browse/CXF-1222
             Project: CXF
          Issue Type: Bug
          Components: Transports
    Affects Versions: 2.0.3
            Reporter: Fred Dushin
             Fix For: 2.0.4


By setting the ciphersuite filter to just exclude DH Anon cipher suites, e.g.,

{{{
                <csec:cipherSuitesFilter>
                    <!-- <csec:include>.*</csec:include> -->
                    <csec:exclude>.*_DH_anon_.*</csec:exclude>
                </csec:cipherSuitesFilter>
}}}

a CXF server will spin its wheels in 
com.sun.net.ssl.internal.ssl.SSLServerSocketImpl.checkEnabledSuites:

{{{
     [java] "btpool0-0 - Acceptor0 [EMAIL PROTECTED]:9001" prio=5 
tid=0x00537320 nid=0x1b96400 runnable [0xb0d0a000..0xb0d0ad10]
     [java]     at 
com.sun.net.ssl.internal.ssl.OutputRecord.<init>(OutputRecord.java:56)
     [java]     at 
com.sun.net.ssl.internal.ssl.OutputRecord.<init>(OutputRecord.java:66)
     [java]     at 
com.sun.net.ssl.internal.ssl.HandshakeOutStream.<init>(HandshakeOutStream.java:36)
     [java]     at 
com.sun.net.ssl.internal.ssl.Handshaker.setEnabledProtocols(Handshaker.java:281)
     [java]     at 
com.sun.net.ssl.internal.ssl.Handshaker.init(Handshaker.java:131)
     [java]     at 
com.sun.net.ssl.internal.ssl.Handshaker.<init>(Handshaker.java:102)
     [java]     at 
com.sun.net.ssl.internal.ssl.ServerHandshaker.<init>(ServerHandshaker.java:73)
     [java]     at 
com.sun.net.ssl.internal.ssl.SSLSocketImpl.initHandshaker(SSLSocketImpl.java:981)
     [java]     at 
com.sun.net.ssl.internal.ssl.SSLSocketImpl.getServerHandshaker(SSLSocketImpl.java:929)
     [java]     at 
com.sun.net.ssl.internal.ssl.SSLServerSocketImpl.checkEnabledSuites(SSLServerSocketImpl.java:288)
     [java]     - locked <0x26dbc988> (a 
com.sun.net.ssl.internal.ssl.SSLServerSocketImpl)
     [java]     at 
com.sun.net.ssl.internal.ssl.SSLServerSocketImpl.accept(SSLServerSocketImpl.java:253)
     [java]     at 
org.mortbay.jetty.security.SslSocketConnector.accept(SslSocketConnector.java:169)
     [java]     at 
org.mortbay.jetty.AbstractConnector$Acceptor.run(AbstractConnector.java:514)
     [java]     at 
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)

}}}

{{{
  PID COMMAND      %CPU   TIME   #TH #PRTS #MREGS RPRVT  RSHRD  RSIZE  VSIZE
 8463 top         15.4%  0:02.89   1    18    20   640K   380K  1.10M  27.0M 
 8462 java       103.0%  1:12.61  12   886   521  60.4M- 82.0M  76.6M-  327M-
}}}

This appears to be due to the way in which we initialize cipher suites in the 
CxfJettySslSocketConnector, and we should revisit this to defend against this 
sort of thing from happening.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to