apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ryan Phillips <r...@trolocsis.com>
Subject Re: [PATCH] APR blocking read()
Date Wed, 25 Apr 2007 04:36:15 GMT
Ryan Phillips <ryan-apr@trolocsis.com> said:
> I ran into a problem today with apache blocking on a read.  When
> ap_http_filter was getting called with AP_MODE_EATCRLF and block=APR_NONBLOCKREAD
> the bucket brigade was blocking (see socket_bucket_read).
> 

I should mention the behavior I saw...

Apache is listening on two ports (80 and 443, 443 is a vhost),  the SSL socket
would work perfectly fine, but port 80 would just connect and stall... no
data returned to the client.  I tracked the problem down to the keepalive
check.  If I disabled keepalive then both ports worked ok, but with
keepalive enabled, then port 80 would connect, but no data returned back to
the client.

The non-blocking call to the brigade to eat whitespace kept hanging.  I
believe the right fix is not to clear the APR_INCOMPLETE_WRITE flag when
timeout == 0.

Thoughts?

Regards,
Ryan

Mime
View raw message