OpenAFS Master Repository branch, master, updated. openafs-devel-1_5_76-2815-g9cd9837
Gerrit Code Review
gerrit@openafs.org
Thu, 9 Aug 2012 08:05:59 -0700 (PDT)
The following commit has been merged in the master branch:
commit 9cd983799e622c9acf5dd6e0b9ae3a3a75eaa8ce
Author: Andrew Deason <adeason@sinenomine.net>
Date: Thu Aug 2 11:58:12 2012 -0400
rx: Process ICMP unreachable errors
When a machine receives ICMP errors, we can detect them in
AFS_RXERRQ_ENV environments. Many of these errors indicate that a
machine is not reachable, so we are guaranteed to not get a response
from them. When we get such an error for a particular peer, mark all
relevant calls with an RX_CALL_DEAD error, since we know we won't get
a response from them. This allows some calls to dead/unreachable hosts
to fail much more quickly.
Do not immediately kill new calls, since obviously the host may have
come back up since then (or the routing/firewall/etc was fixed), but
only calls that were started before the current error was received.
Note that a call doesn't actually notice until the next rxi_CheckCall,
since directly killing each of the relevant calls would be rather
slow. So, we don't notice a dead peer immediately, though we notice
much more quickly than we used to.
Reorganize the error queue processing a little bit to make this easier
to do.
Change-Id: I403540e0677fe2d432901e4ecc19f7f385610b7f
Reviewed-on: http://gerrit.openafs.org/7929
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
src/rx/LINUX/rx_knet.c | 10 +-----
src/rx/rx.c | 83 ++++++++++++++++++++++++++++++++++++++++++++++++
src/rx/rx_call.h | 3 ++
src/rx/rx_internal.h | 12 +++++++
src/rx/rx_peer.h | 3 ++
src/rx/rx_user.c | 8 +----
6 files changed, 103 insertions(+), 16 deletions(-)
--
OpenAFS Master Repository