Ryan Phillips <[EMAIL PROTECTED]> 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 am not 100% sure how the bucket brigades are supposed to work on a > nonblocking read, but please critique this patch. The patch applies to APR. >
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
