Messages in this thread | | | From | Whit Blauvelt <> | Subject | Re: tcp_keepalive crash - more data, speculations - masq tie? | Date | Tue, 29 Feb 2000 10:56:16 -0500 |
| |
Good morning. System still standing. So it now seems most likely (> 90%) that what the tcp_timer code does "if (elapsed >= sysctl_tcp_keepalive_time)" occassions the crash. It would be a small convenience if setting tcp_keepalive_time to 0, rather than to an absurdly high value, also caused that code to be skipped (zero - it's not just for booleans anymore).
I've also run across a reference to Linux masquerading not working compatibly with keepalives:
http://x28.deja.com/[ST_rn=ps]/getdoc.xp?AN=587356272&CONTEXT=951840031.1168572471&hitnum=14
Not sure how that could fit here, but the box in question is masquerading. It might explain why you're not seeing more reports on this, if the problem only surfaces when the firewall/masq box is also an Apache &c. server. The other less-common aspect of this setup, as I've mentioned, is its DSL-bridged connection.
There's also a report you may be aware of from 1/1/2000 on comp.os.linux about keepalive itself not functioning correctly on 2.2 kernels (and I've seen a few others reports elsewhere to the same effect but didn't save the references) . Could this help triangulate the problem?:
http://x28.deja.com/[ST_rn=ps]/getdoc.xp?AN=567044038&CONTEXT=951840031.1168572471&hitnum=77
I also continue to see no hanging tcp sockets for keepalive to be concerned with killing, so if it thought it was seeing something > 2 hours old to deal with before in that spot of code, it may well have been in error to think it saw that - and the majority of the crashes have happenned with no masqueraded systems connected, when Apache, sendmail and DNS amounted to the whole of the outside traffic - all of which are handling their sockets fine on their own.
Whit
On Mon, 28 Feb 2000, Whit Blauvelt wrote: > I set /proc/sys/net/ipv4/tcp_keepalive_time to > 30 days (2592000) rather than 2 hours yesterday morning, and so far no > crash. > > If this does turn out to stop the crashes, then having changed this value > means that the condition in tcp_timer.c of > > if (elapsed >= sysctl_tcp_keepalive_time) > > will never be met in the real world, with the implication that it's > something that happens when it is that triggers the seizure.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |