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

Daryn Sharp commented on MAPREDUCE-3943:
----------------------------------------

*ContainerManagerImpl*
# {{authorizeRequest}} assuming one and only one token is a landmine.  Should 
either throw if more than one, or use the token selector to get the intended 
one.
# {{isValidStartContainerRequest(tokenId)}} is invoked before the null check 
for {{tokenId}}
# Container starts verify the token hasn't already been used.  Should status & 
stop maybe verify it _has_ been used, ie. started?
# Should "Attempt to use an old secret key ..." but something more like 
"Attempt to relaunch a container"?

*ResourceTrackerService*
# Should refs to {{BaseContainerTokenSecretManager}} be 
{{RMContainerTokenSecretManager}}?

*NMTokenSecretManager*
# {{retrievePassword}} has a fallback to the current master key when it knows 
the token is invalid.  Why not throw InvalidToken exception?
# {{startContainerSuccessful}} is assuming one and only one token.  Perhaps 
pass it the token validated in {{authorizeRequest}}?
# _Important_: {{appFinished}} "forgets" containers already launched, thus 
allowing tokens to relaunch containers for 48 hours.  The token essentially 
needs to be cancelled after use which probably means remembering them until 
hard expiration.

*General questions*
In general, it seems like so many objects shouldn't need to hold a reference to 
the secret managers.  Isn't there a context that can hold a ref?

Using events to sync the secret keys between the {{RMContainerSecretManager}} 
and {{ResourceTrackerService}} (which actually has a ref to the secret 
manager!) is rather complex.  It was difficult to ensure major race conditions 
don't exist.  Would using the read-write lock, instead of sync keyword, in the 
secret manager for key access have made it simpler?
                
> RM-NM secret-keys should be randomly generated and rolled every so often
> ------------------------------------------------------------------------
>
>                 Key: MAPREDUCE-3943
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-3943
>             Project: Hadoop Map/Reduce
>          Issue Type: Sub-task
>          Components: mrv2, security
>    Affects Versions: 0.23.0
>            Reporter: Vinod Kumar Vavilapalli
>            Assignee: Vinod Kumar Vavilapalli
>            Priority: Critical
>         Attachments: MAPREDUCE-3943-20120416.txt, MR3943_branch-23.txt, 
> MR3943_branch-23.txt, MR3943_trunk.txt, MR3943_trunk.txt, MR3943.txt, 
> MR3943.txt
>
>
>  - RM should generate the master-key randomly
>  - The master-key should roll every so often
>  - NM should remember old expired keys so that already doled out 
> container-requests can be satisfied.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to