Uploaded image for project: 'Hadoop Common'
  1. Hadoop Common
  2. HADOOP-15622

UserGroupInformation TGT renewer refreshTime should be based on getNextTgtRenewalTime

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • None
    • None

    Description

      The calculation of nextRefresh in UserGroupInformation#spawnAutoRenewalThreadForUserCreds is currently based on:

      nextRefresh = Math.max(getRefreshTime(tgt),
                    now + kerberosMinSecondsBeforeRelogin);
      

      Most of the time nextRefresh = getRefreshTime(tgt). If it is renewing exactly on refreshTime, and there are parallel operations using expired ticket.
      There is a time gap that some operations might not perform until the next tgt is obtained. Ideally, we want to keep service uninterrupted, therefore getNextTgtRenewalTime supposed to calculate the time a few minutes before Kerberos tgt expired to determine the nextRefresh time.
      It looks like we are not using getNextTgtRenewalTime method to calculate nextRefresh instead opt-in to use ticket expiration time as base line for nextRefresh.

      Kudos for eyang for reporting the issue originally in HADOOP-15593.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              gabor.bota Gabor Bota
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated: