I asked the question on the 'netdev' mailing list and got some
inconclusive reactions.

http://marc.info/?l=linux-netdev&m=118791424531702&w=2

The general consensus was that:

a) TCP_DEFER_ACCEPT isn't specified in any RFC and breaks regular handshake 
negotiation of RFC 793.
b) The load-balancer shouldn't open an HTTP connection and not use it 
immediately, but no one could/did provide a definitive rule on that.

The upshot is, any Apache 2.1.5+ installation behind pipe-lining load-
balancers could suffer the same fate. It is something we should add to
the documentation for version 2.1.5+, and it should be up-front in the
installation notes for the server product as well as making the server
support teams aware of it.

In one way shipping Apache with TCP_DEFER_ACCEPT enabled is in breach of
the RFCs and as such it could be argued is a 'bad thing'. On the other
had it appears it affects only a small number of installations (judging
by how little information there is about it).

There are a few other related issues around TCP_KEEP_ALIVE and broken
time-outs in the 'netdev' and 'kernel' mailing lists, and at apache:

Apache "TCP_DEFER_ACCEPT timeout set way too low" 
http://issues.apache.org/bugzilla/show_bug.cgi?id=41270
kernel  "TCP_DEFER_ACCEPT issues" 
http://marc.info/?l=linux-kernel&m=119396726531695&w=2
netdev "TCP_DEFER_ACCEPT brokenness?" 
http://marc.info/?l=linux-netdev&m=116753348815044&w=2

-- 
TCP_DEFER_ACCEPT causes random HTTP connection failures in load-balanced 
web-server farms
https://bugs.launchpad.net/bugs/134274
You received this bug notification because you are a member of Ubuntu
Bugs, which is the bug contact for Ubuntu.

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to