httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Joe Orton <>
Subject Re: TCP_CORK in Linux 2.6: not broken, but it doesn't work with TCP_NODELAY
Date Mon, 22 Aug 2005 14:19:58 GMT
On Mon, Aug 22, 2005 at 02:52:38PM +0100, Joe Orton wrote:
> With the FC4 2.6.12-ish kernel I am seeing:
>  - stuff sent by httpd fails to cork properly; partial frames are sent 
> ... i.e. what Greg reported.
>  - stuff sent by your test case *does* get corked properly; the partial 
> header frame is suppressed; using "--cork --nonblock", which *should* be 
> equivalent to what httpd does.
> so I think there is something subtle here.

It looks like the fact that TCP_NODELAY was ever set to 1 on the socket 
is triggering the problem, even if it is set to 0 at the time TCP_CORK 
is set.

Modified version of your test case attached; passing --toggle-nodelay 
sets TCP_NODELAY to 1 and then back to 0, which should be equivalent to 
never setting it at all but isn't.  I've reported this to our kernel 


View raw message