[ 
https://issues.apache.org/jira/browse/YARN-503?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13614502#comment-13614502
 ] 

Daryn Sharp commented on YARN-503:
----------------------------------

bq. Will the case of MR actions be an issue? that the launcher goes away?

No, the central focus of this patch is to keep tokens alive as long as _at 
least one job_ is using the tokens.  Upon job submission, the new app is 
immediately linked against the tokens.  So for an oozie action, it's ok for the 
launcher to exit after submitting an action.  The tokens will stay alive until 
the action, and any sub-jobs it may have launched, have completed.  After no 
app is running with the tokens, and the keepalive expires, the tokens are 
cancelled.

Note that by default I maintained 100% backwards compat in that tokens for 
oozie jobs setting the " mapreduce.job.complete.cancel.delegation.tokens=false" 
will never be cancelled.  The RM will stop renewing them and won't issue 
duplicate renews.  Until we deprecate/remove the setting, we may internally try 
make the conf setting a final to see what happens.

Will address findbugs after some webhdfs firefighting.
                
> DelegationTokens will be renewed forever if multiple jobs share tokens and 
> the first one sets JOB_CANCEL_DELEGATION_TOKEN to false
> ----------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: YARN-503
>                 URL: https://issues.apache.org/jira/browse/YARN-503
>             Project: Hadoop YARN
>          Issue Type: Bug
>          Components: resourcemanager
>    Affects Versions: 0.23.3, 3.0.0, 2.0.0-alpha
>            Reporter: Siddharth Seth
>            Assignee: Daryn Sharp
>         Attachments: YARN-503.patch
>
>
> The first Job/App to register a token is the one which DelegationTokenRenewer 
> associates with a a specific Token. An attempt to remove/cancel these shared 
> tokens by subsequent jobs doesn't work - since the JobId will not match.
> As a result, Even if subsequent jobs have 
> MRJobConfig.JOB_CANCEL_DELEGATION_TOKEN set to true - tokens will not be 
> cancelled when those jobs complete.
> Tokens will eventually be removed from the RM / JT when the service that 
> issued them considers them to have expired or via an explicit 
> cancelDelegationTokens call (not implemented yet in 23).
> A side affect of this is that the same delegation token will end up being 
> renewed multiple times (a separate TimerTask for each job which uses the 
> token).
> DelegationTokenRenewer could maintain a reference count/list of jobIds for 
> shared tokens.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to