Kitura/BlueSSLService

Listener infinite loop with >= 0.12.42

djones6 opened this issue · 3 comments

With BlueSSLService >= 0.12.42, I get an infinite loop (and an unresponsive Kitura server) if I use wrk to attempt to drive load:
wrk -c1 -t1 -d1s https://localhost:8443/plaintext

Once wrk completes, the Kitura process is left burning 100% cpu. Other tools (such as curl) are also now unable to connect.

I was able to replicate this problem without using wrk, by using curl to deliberately issue a non-HTTPS request to the HTTPS port:

curl http://localhost:8443/plaintext &
curl -k https://localhost:8443/plaintext
<ctrl+C>
fg
<ctrl+C>

The infinite loop only occurs if I kill them in this order. If I were to kill the bogus (HTTP) one first, then the second (HTTPS) completes normally.

I'm going to back out the change that kept the loop running in the case of an abort (errSSLClosedAbort). I suspect that this is what's causing the problem. If you can retest after I release the new version, I'd appreciate it. Thanks.

The change has been backed out. Please retest with the latest version. Thanks.

I re-ran with 0.12.44 and the problem is fixed. Thanks Bill.