Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-4113

kerberized clients hangs while mounting/accessing due to uncatched error -ETIMEDOUT in gss_svc_upcall

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Major
    • Lustre 2.6.0
    • 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.

      Attachments

        Activity

          People

            utopiabound Nathaniel Clark
            thomas.stibor Thomas Stibor
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: