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.