[openssl-users] OpenSSL non-blocking epoll hanging on data receiving

counterpoint martin at black-sheep-research.com
Thu May 26 17:01:07 UTC 2016


I'm working on a proxy application that uses non-blocking socket I/O. A
limited number of threads use epoll to handle events, and each thread runs
process bound as much as it can.

The SSL implementation uses read_SSL and write_SSL, with logic to handle
"read wants write" etc.

When reading, processing is triggered by an EPOLLIN event and read_SSL will
read all the data available - after an initial read, a loop is controlled by
SSL_pending().

The problem is that with a large volume of data the read process comes to a
halt. Perhaps this means that there was unprocessed data that has been
received but cannot be read. In that case, the read loop will not get all
the data, but neither will there be an EPOLLIN event. If this happens when
no further data is to be sent, the connection comes to a halt (if my
analysis is correct). Or maybe my analysis isn't correct!

I'd be grateful for any pointers to how I can get out of this problem!



--
View this message in context: http://openssl.6102.n7.nabble.com/OpenSSL-non-blocking-epoll-hanging-on-data-receiving-tp66355.html
Sent from the OpenSSL - User mailing list archive at Nabble.com.


More information about the openssl-users mailing list