Details
-
Bug
-
Resolution: Fixed
-
Major
-
Lustre 2.4.1, Lustre 2.5.0
-
debian wheezy 3.6.11 lustre patched
-
3
-
11069
Description
Since kernel version 2.6.20 the function cache_check() in net/sunrpc/cache.c can return the error -ETIMEDOUT.
@@ -107,27 +237,14 @@ int cache_check(struct cache_detail *detail,
}
if (rv == -EAGAIN)
- cache_defer_req(rqstp, h);
+ if (cache_defer_req(rqstp, h) != 0)
+ rv = -ETIMEDOUT;
- if (rv && h)
- detail->cache_put(h, detail);
+ if (rv)
+ cache_put(h, detail);
return rv;
}
This error is uncaught in gss_svc_upcall.c in function
gss_svc_upcall_handle_init()
... rc = cache_check(&rsi_cache, &rsip->h, &cache_upcall_chandle); ... if (rc) GOTO(out, rc = SECSVC_DROP);
and causes the client to drop the security negotiation, and results in hanging until the flavor is set back to null (lctl conf_param ldomov.srpc.flavor.default=null)
I provide a patch to fix it.