-
We've reviewed the code and your logs and improved handling of this use case (when the TLS handshake is not ready while the server wants to send data).
In the linked commit, there is a possible fix, which we are going to check before merging it to the next version (8.2.0) as current version 8.1.0 is already being prepared for a release.
-
In version 8.0.0 there was an improvement already in place so the impact of that to 8.1.0 is very limited. Due to that and severity of change, additional improvement was done in 8.2.0-SNAPSHOT and may be released at some point in 8.1.1 when it will be verified to work properly.
So there is no need to release this as a bugfix in 8.1.1 at this point.
Steps to reproduce the behavior:
<starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>
).Clients attempt to connect to the server each 60 seconds. ~300 problem clients generate 5 connections per second. Our cluster with 4 nodes has completely overloaded (LA > 80 on each node) All connections (300,000) were reset by ping timeout.
Typical stack example:
May be need async implementation to fix case (b). May be our night hotfix for case (a) will helps to explain the problem:
fix-overload-cpu-when-connections-dropped.txt