apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stas Bekman <s...@stason.org>
Subject Re: blocking bucket reads on non-blocking sockets
Date Fri, 14 May 2004 23:16:34 GMT
Cliff Woolley wrote:
> On Fri, 14 May 2004, Stas Bekman wrote:
>>So, who changed that in 2.0.49? It worked just fine pre-2.0.48. The guilty
>>party please stand up and explain. This change causes a serious breakage in
>>the protocol handlers and filters on those affected platforms. I suppose apr
>>doesn't have tests for that, and that's why the problem wasn't caught when it
>>was introduced. Thanks.
> The socket buckets (or any buckets that I know of) did not change between
> 2.0.48 and 2.0.49.  If they're broken now and weren't before, it's either
> something else changed, or it really WAS broken before and we just didn't
> notice.

The problem is that the bug doesn't appear to happen on Linux. So I can't tell 
when exactly this problem emerged. All I know that 3 tests that were written 
about 2-3 years ago worked fine all this time. The moment users upgraded to 
2.0.49 they started to report failures on Solaris, MacOSX and *BSD. Does it 
information provide any hints?

> It's certainly true that if apr_socket_recv() returns APR_EAGAIN, so will
> socket_bucket_read().  But the block of code that does that has been that
> way for as long as I can remember.  That doesn't necessarily make it
> right.  :)

I suppose it could be something in Apache. e.g. before 2.0.48 Apache was 
explicitly setting the socket to a blocking mode before handing it to the 
callbacks. And it probably stopped doing that in 2.0.49? Why linux and windows 
are then different from other platforms?

Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:stas@stason.org http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com

View raw message