rx-protect-servers-from-half-reachable-clients-20020119
authorNickolai Zeldovich <kolya@mit.edu>
Sat, 19 Jan 2002 16:28:33 +0000 (16:28 +0000)
committerDerrick Brashear <shadow@dementia.org>
Sat, 19 Jan 2002 16:28:33 +0000 (16:28 +0000)
commitc8f461dcb0b4e8d63a99b9837f2dcc1d52d66cc4
treede862d261c9b8fffd3961517b82856796bfedb9c
parent7827ac9af178b5c4a0d42b2ff87ca7b012a513ef
rx-protect-servers-from-half-reachable-clients-20020119

This patch should protect Rx-based servers from half-reachable clients,
which issue requests but don't acknowledge the server's response, thereby
eventually tying up all of the server threads, and denying service to all
other clients.  Such clients can arise in case of uni-directional routing
failures, whereby all packets from the server to client are lost but not
the other way around.

The idea it to ping clients (using Rx ack ping) before attaching them to
a thread, if (a) we're running low on threads, and (b) the client hasn't
responsed to a ping recently.
src/rx/rx.c
src/rx/rx.h