OpenAFS Master Repository branch, openafs-devel-1_7_x, updated. openafs-devel-1_7_16-5-g5cae938
Gerrit Code Review
gerrit@openafs.org
Fri, 10 Aug 2012 18:53:21 -0700 (PDT)
The following commit has been merged in the openafs-devel-1_7_x branch:
commit fe6553e8187703670fc1a41c426f2467e2aa6117
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.
Reviewed-on: http://gerrit.openafs.org/7929
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
(cherry picked from commit 9cd983799e622c9acf5dd6e0b9ae3a3a75eaa8ce)
Change-Id: Ica0a79e9b23b235f9a098bdf5043508f4c6a5411
Reviewed-on: http://gerrit.openafs.org/7959
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
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