On Fri, Jun 10, 2005, Brian J. France wrote:

> I have a case where a https connection times out, which causes an alarm
> to trigger, apache start shutting down and mod_ssl tries to flush the
> buffer in a non-blocking way and hangs the connection until restart
> (see the backtrace below).
>
> I think the cause of this is the http_main.c patch for EAPI (see below)
> because it inserts the ap_call_close_connection_hook before setting
> B_EOUT instead of after.  If it would set B_OUT first and then call
> ap_call_close_connection_hook, any ap_bflush or ap_bwrite calls would
> return (-1) instead of trying to write data to the socket (in a
> non-blocking way).
>
> Thoughts?

I've now looked into this subtle problem in more detail and I think
your analysis is correct. The ap_bflush() in mod_ssl will hang the
connection if we don't set B_EOUT before calling the EAPI connection
close hook. For mod_ssl 2.8.23 I've now adjusted the two calls to
ap_call_close_connection_hook() to occur _after_ the ap_bsetflag() call.
Thanks for your feedback.

                                       Ralf S. Engelschall
                                       [EMAIL PROTECTED]
                                       www.engelschall.com

______________________________________________________________________
Apache Interface to OpenSSL (mod_ssl)                   www.modssl.org
User Support Mailing List                      modssl-users@modssl.org
Automated List Manager                            [EMAIL PROTECTED]

Reply via email to