-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
2.0.27.Final
Setup :
JDK-13.0.1
One way SSL
HTTP/2
TLS 1.3
JVM network / TLS related option
-Dsun.net.inetaddr.ttl=60
-Dnetworkaddress.cache.negative.ttl=10
-Djava.net.preferIPv6Addresses=true
-Dsun.net.client.defaultConnectTimeout=10000
-Dsun.net.client.defaultReadTimeout=600000
-Djdk.certpath.disabledAlgorithms=MD2
-Djdk.tls.disabledAlgorithms=SSL,SSLv2,SSLv3,TLSv1,TLSv1.1,MD5,RC4,DSA
-Djdk.tls.acknowledgeCloseNotify=true
See issues for related similar problem :
https://issues.redhat.com/browse/UNDERTOW-1406
https://issues.jboss.org/projects/UNDERTOW/issues/UNDERTOW-1493?filter=allopenissues
I open a new issues in redhat/JBoss because the stack trace now seems different
One reason could be the upgrade to JDK 13
The feature allows for the server-side of JSSE to operate stateless. As described in RFC 50771 for TLS 1.2 and below, and RFC 84462 for TLS 1.3, the TLS server sends internal session information in the form of an encrypted session ticket to a client that supports stateless.
https://www.oracle.com/technetwork/java/javase/13all-relnotes-5461743.html#NewFeature
https://bugs.java.com/bugdatabase/view_bug.do?bug_id=JDK-8211018
--------------------
top -H -u icwrk
top - 15:27:02 up 1 day, 15 min, 1 user, load average: 4.19, 3.54, 1.95
Tasks: 398 total, 3 running, 349 sleeping, 0 stopped, 0 zombie
Cpu(s): 71.3%us, 25.6%sy, 0.0%ni, 3.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.1%st
Mem: 16426368k total, 5928624k used, 10497744k free, 105548k buffers
Swap: 0k total, 0k used, 0k free, 4033788k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
27939 icwrk 20 0 4356m 1.0g 33m S 93.3 6.5 8:23.39 XNIO-2 I/O-1
27941 icwrk 20 0 4356m 1.0g 33m S 92.7 6.5 8:19.51 XNIO-2 I/O-3
27942 icwrk 20 0 4356m 1.0g 33m S 92.3 6.5 8:51.37 XNIO-2 I/O-4
27940 icwrk 20 0 4356m 1.0g 33m S 91.3 6.5 8:53.02 XNIO-2 I/O-2
—
Thread stack trace for thread consuming a lot of CPU looks like :
egrep -A15 "XNIO.*cpu=[0-9]
{8,9}" icarius-internal-api.out
"XNIO-2 I/O-1" #43 prio=5 os_prio=0 cpu=53042617.07ms elapsed=154293.94s tid=0x00007f03552b5000 nid=0x6953 runnable [0x00007f02b87f9000]
java.lang.Thread.State: RUNNABLE
at java.lang.reflect.AccessibleObject.checkAccess(java.base@13.0.1/AccessibleObject.java:641)
at java.lang.reflect.Method.invoke(java.base@13.0.1/Method.java:559)
at io.undertow.protocols.alpn.JDK9AlpnProvider.getSelectedProtocol(JDK9AlpnProvider.java:97)
at io.undertow.server.protocol.http.AlpnOpenListener$AlpnConnectionListener.handleEvent(AlpnOpenListener.java:359)
at io.undertow.server.protocol.http.AlpnOpenListener$AlpnConnectionListener.handleEvent(AlpnOpenListener.java:335)
at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92)
at org.xnio.conduits.ReadReadyHandler$ChannelListenerHandler.readReady(ReadReadyHandler.java:66)
at io.undertow.protocols.ssl.SslConduit$SslReadReadyHandler.readReady(SslConduit.java:1176)
at org.xnio.nio.NioSocketConduit.handleReady(NioSocketConduit.java:88)
at org.xnio.nio.WorkerThread.run(WorkerThread.java:561)
Locked ownable synchronizers:
- None
"XNIO-2 I/O-2" #44 prio=5 os_prio=0 cpu=52925630.09ms elapsed=154293.94s tid=0x00007f0355c29800 nid=0x6954 runnable [0x00007f02b86f8000]
java.lang.Thread.State: RUNNABLE
at org.xnio.conduits.ConduitStreamSourceChannel.resumeReads(ConduitStreamSourceChannel.java:135)
at io.undertow.server.protocol.http.AlpnOpenListener$AlpnConnectionListener.handleEvent(AlpnOpenListener.java:392)
at io.undertow.server.protocol.http.AlpnOpenListener$AlpnConnectionListener.handleEvent(AlpnOpenListener.java:335)
at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92)
at org.xnio.conduits.ReadReadyHandler$ChannelListenerHandler.readReady(ReadReadyHandler.java:66)
at io.undertow.protocols.ssl.SslConduit$SslReadReadyHandler.readReady(SslConduit.java:1176)
at org.xnio.nio.NioSocketConduit.handleReady(NioSocketConduit.java:88)
at org.xnio.nio.WorkerThread.run(WorkerThread.java:561)
Locked ownable synchronizers:
- None
"XNIO-2 I/O-3" #45 prio=5 os_prio=0 cpu=52928471.31ms elapsed=154293.94s tid=0x00007f035534a800 nid=0x6955 runnable [0x00007f02b85f8000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.EPoll.wait(java.base@13.0.1/Native Method)
at sun.nio.ch.EPollSelectorImpl.doSelect(java.base@13.0.1/EPollSelectorImpl.java:120)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(java.base@13.0.1/SelectorImpl.java:124)
- locked <0x00000000e2b4c6a8> (a sun.nio.ch.Util$2)
- locked <0x00000000e2b4c650> (a sun.nio.ch.EPollSelectorImpl)
at sun.nio.ch.SelectorImpl.select(java.base@13.0.1/SelectorImpl.java:141)
at org.xnio.nio.WorkerThread.run(WorkerThread.java:511)
Locked ownable synchronizers:
- None
"XNIO-2 I/O-4" #46 prio=5 os_prio=0 cpu=52905847.46ms elapsed=154293.94s tid=0x00007f0355d77000 nid=0x6956 runnable [0x00007f02b84f6000]
java.lang.Thread.State: RUNNABLE
at io.undertow.server.protocol.http.AlpnOpenListener$AlpnConnectionListener.handleEvent(AlpnOpenListener.java:346)
at io.undertow.server.protocol.http.AlpnOpenListener$AlpnConnectionListener.handleEvent(AlpnOpenListener.java:335)
at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92)
at org.xnio.conduits.ReadReadyHandler$ChannelListenerHandler.readReady(ReadReadyHandler.java:66)
at io.undertow.protocols.ssl.SslConduit$SslReadReadyHandler.readReady(SslConduit.java:1176)
at org.xnio.nio.NioSocketConduit.handleReady(NioSocketConduit.java:88)
at org.xnio.nio.WorkerThread.run(WorkerThread.java:561)
- is related to
-
UNDERTOW-1961 SSL Read Loop Detected, UT005076
- Open