[erlang-questions] Trouble with accepting SSL on slow connections

Gurgen Tumanian <>
Fri Feb 22 12:32:47 CET 2008


Dear All.

I am having trouble with accepting SSl connections on slow links in case of
delays over 2000ms. ssl:ssl_accept fails with {error, esslconnect}.
I tried runnig ssl_esock with debug output on, and i have found out that the
reason of esslaccept is the EAGAIN error reported by underlying OS(FreeBSD )
when the ssl module tries to receive the client sertificate. The debug
output is this:

==========LOOP=============^M
MASKS SET FOR FD: 11 (read) 9 (read) 8 (read) 10 (read) 5 (read) ^M
CONNECTIONS:^M
 - SSL_ACCEPT [0x8138d80] (fd = 11)^M
 - JOINED [0x812f900] (origin = accept)^M
       (fd = 8, eof = 0, wq = 0, bp = 0)^M
       (proxyfd = 9, eof = 0, wq = 0, bp = 0)^M
 - JOINED [0x80fb300] (origin = accept)^M
       (fd = 7, eof = 1, wq = 0, bp = 0)^M
       (proxyfd = 10, eof = 0, wq = 0, bp = 1)^M
 - PASSIVE_LISTENING [0x80e7b80] (fd = 6)^M
 - ACTIVE_LISTENING [0x80e7700] (fd = 5, acceptors = 8)^M
Before poll/select: 6 descriptors (total 11)^M
-----------------------------------^M
SSL_ACCEPT fd = 11^M
esock_ssl_accept: calling SSL_accept fd = 11^M
  state before: UNKWN ^M
  info: before/accept initialization^M
  info: SSLv3 read client hello A^M
  info: SSLv3 write server hello A^M
  info: SSLv3 write certificate A^M
  info: SSLv3 write certificate request A^M
  info: SSLv3 flush data^M
  info: error in SSLv3 read client certificate A^M
  info: error in SSLv3 read client certificate A^M
  sock_errno 35 errno 35 ^M
  SSL_accept = -1^M
  ssl_error: SSL_ERROR_WANT_READ^M
  state after: 3RCC_A^M
    ret -1 os error Resource temporarily unavailable^M
==========LOOP=============^M


As far as i understand the SSL_accept(that handles the accept in ssl_esock)
function should have tried continuously  on receiveing client certificate if
the OS reported EAGAIN. However it does not,and i am really clueless about
any workarounds or changes that would solve this problem.
Any help would be appreciated.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20080222/4124b2a7/attachment.html>


More information about the erlang-questions mailing list