Uploaded image for project: 'Hadoop Map/Reduce'
  1. Hadoop Map/Reduce
  2. MAPREDUCE-5364

Deadlock between RenewalTimerTask methods cancel() and run()

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.2.0
    • 1.2.1
    • None
    • None
    • Reviewed

    Description

      MAPREDUCE-4860 introduced a local variable cancelled in RenewalTimerTask to fix the race where DelegationTokenRenewal attempts to renew a token even after the job is removed. However, the patch also makes run() and cancel() synchronized methods leading to a potential deadlock against run()'s catch-block (error-path).

      The deadlock stacks below:

       - org.apache.hadoop.mapreduce.security.token.DelegationTokenRenewal$RenewalTimerTask.cancel() @bci=0, line=240 (Interpreted frame)
       - org.apache.hadoop.mapreduce.security.token.DelegationTokenRenewal.removeDelegationTokenRenewalForJob(org.apache.hadoop.mapreduce.JobID) @bci=109, line=319 (Interpreted frame)
      
       - org.apache.hadoop.mapreduce.security.token.DelegationTokenRenewal.removeFailedDelegationToken(org.apache.hadoop.mapreduce.security.token.DelegationTokenRenewal$DelegationTokenToRenew) @bci=62, line=297 (Interpreted frame)
       - org.apache.hadoop.mapreduce.security.token.DelegationTokenRenewal.access$300(org.apache.hadoop.mapreduce.security.token.DelegationTokenRenewal$DelegationTokenToRenew) @bci=1, line=47 (Interpreted frame)
       - org.apache.hadoop.mapreduce.security.token.DelegationTokenRenewal$RenewalTimerTask.run() @bci=148, line=234 (Interpreted frame)
      

      Attachments

        1. mr-5364-addendum-2.patch
          4 kB
          Karthik Kambatla
        2. mr-5364-addendum-1.patch
          3 kB
          Karthik Kambatla
        3. mr-5364-1.patch
          1 kB
          Karthik Kambatla

        Issue Links

          Activity

            People

              kasha Karthik Kambatla
              kasha Karthik Kambatla
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: