mirror of
https://github.com/adulau/aha.git
synced 2024-12-28 03:36:19 +00:00
SUNRPC: Invalidate the RPCSEC_GSS session if the server dropped the request
RFC 2203 requires the server to drop the request if it believes the RPCSEC_GSS context is out of sequence. The problem is that we have no way on the client to know why the server dropped the request. In order to avoid spinning forever trying to resend the request, the safe approach is therefore to always invalidate the RPCSEC_GSS context on every major timeout. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
parent
a3dab29353
commit
b48633bd08
1 changed files with 5 additions and 0 deletions
|
@ -1173,6 +1173,11 @@ call_timeout(struct rpc_task *task)
|
|||
clnt->cl_protname, clnt->cl_server);
|
||||
}
|
||||
rpc_force_rebind(clnt);
|
||||
/*
|
||||
* Did our request time out due to an RPCSEC_GSS out-of-sequence
|
||||
* event? RFC2203 requires the server to drop all such requests.
|
||||
*/
|
||||
rpcauth_invalcred(task);
|
||||
|
||||
retry:
|
||||
clnt->cl_stats->rpcretrans++;
|
||||
|
|
Loading…
Reference in a new issue