Jinsong Du wrote:
I have a simple server using blocked socket and OpenSSL, its only
function is for user registering an account. When an user connect to
this server, it spawns a child process to handle the request. I found
sometime child processes got stuck.

The problem here is that what if 2 users connects at the same moment (at TCP level).

But only one of them completes the SSL hello sequence ?

If the one that didn't complete the SSL hello sequence got to be serviced by ssl3_accept() first then you will find the other users (and any subsequent users will be straved of CPU time to service their connection).

This is because your parent process is blocked expecting to process TCP data (that never arrives).


The problem is application design, you need to seperate the processing of TCP level socket processing on accept from SSL level socket processing on accept.


Darryl

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to