OpenAFS Master Repository branch, openafs-devel-1_7_x, updated. openafs-devel-1_7_19-35-g140a5af
Gerrit Code Review
gerrit@openafs.org
Thu, 29 Nov 2012 21:48:06 -0800 (PST)
The following commit has been merged in the openafs-devel-1_7_x branch:
commit 140a5aff26521085a073628fb0a953a141fbbd4b
Author: Jeffrey Altman <jaltman@your-file-system.com>
Date: Sat Nov 24 14:36:46 2012 -0500
Windows: Fail RX_INVALID_OPERATION errors
RX_INVALID_OPERATION errors were not resulting in an eventual
failure and the RPC was being repeated indefinitely. There were
three subtle problems:
1. RX_INVALID_OPERATION was being processed by cm_Analyze()
resulting in a retry in all cases. Even those where no
connp was passed in as NULL. connp == NULL implies that
no server could be obtained so the RPC was not issued on
this pass. As a result there should be no retry.
2. RX_INVALID_OPERATION was mapped to CM_ERROR_UNKNOWN which
is not an error that is reported to the AFS redirector.
3. RDR_BkgFetch was setting CM_REQ_NORETRY and permitting
the retries to be handled by the cm_daemon threads. However,
CM_ERROR_UNKNOWN was not treated as a fatal error by cm_Daemon.
Address the failures in the following ways:
A. cm_Analyze no longer retries calls which did not take place.
B. Create a new CM_ERROR_INVAL_NET_RESP error for RX_INVALID_OPERATION
which is translated to the Win32 STATUS_INVALID_NETWORK_RESPONSE
error. This is now returned to the AFS redirector and treated
as a fatal error.
C. RDR_BkgFetch no longer queues tasks to cm_Daemon with the
CM_REQ_NORETRY flag set.
Reviewed-on: http://gerrit.openafs.org/8510
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
(cherry picked from commit ded88c8f8d1dc6758344b708d2aa55f3b29651c7)
Change-Id: I933488689c2e0582a2b1f46a4488837e696d036d
Reviewed-on: http://gerrit.openafs.org/8571
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
src/WINNT/afsd/cm_buf.c | 14 +++++++++++---
src/WINNT/afsd/cm_conn.c | 19 +++++++++----------
src/WINNT/afsd/cm_dcache.c | 2 ++
src/WINNT/afsd/cm_error.h | 1 +
src/WINNT/afsd/cm_utils.c | 6 ++++++
src/WINNT/afsd/smb.c | 3 +++
src/WINNT/afsrdr/user/RDRFunction.c | 5 +++++
7 files changed, 37 insertions(+), 13 deletions(-)
--
OpenAFS Master Repository