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

Todd Lipcon commented on HDFS-3374:
-----------------------------------

This is still only in branch-1 and not in trunk. Any plans to forward port?

Also, jcarder noticed that this added a lock order inversion:
- FSNamesystem.saveNamespace (holding FSN lock) calls 
DTSM.saveSecretManagerState (which takes DTSM lock)
- ExpiredTokenRemover.run (holding DTSM lock) calls rollMasterKey calls 
updateCurrentKey calls logUpdateMasterKey which takes FSN lock

So if there is a concurrent saveNamespace at the same tie as the expired token 
remover runs, it might make the NN deadlock.

                
> hdfs' TestDelegationToken fails intermittently with a race condition
> --------------------------------------------------------------------
>
>                 Key: HDFS-3374
>                 URL: https://issues.apache.org/jira/browse/HDFS-3374
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: namenode
>            Reporter: Owen O'Malley
>            Assignee: Owen O'Malley
>             Fix For: 1.0.3
>
>         Attachments: HDFS-3374-branch-1.0.patch, hdfs-3374.patch, 
> HDFS-3374.patch
>
>
> The testcase is failing because the MiniDFSCluster is shutdown before the 
> secret manager can change the key, which calls system.exit with no edit 
> streams available.
> {code}
>     [junit] 2012-05-04 15:03:51,521 WARN  common.Storage 
> (FSImage.java:updateRemovedDirs(224)) - Removing storage dir 
> /home/horton/src/hadoop/build/test/data/dfs/name1
>     [junit] 2012-05-04 15:03:51,522 FATAL namenode.FSNamesystem 
> (FSEditLog.java:fatalExit(388)) - No edit streams are accessible
>     [junit] java.lang.Exception: No edit streams are accessible
>     [junit]     at 
> org.apache.hadoop.hdfs.server.namenode.FSEditLog.fatalExit(FSEditLog.java:388)
>     [junit]     at 
> org.apache.hadoop.hdfs.server.namenode.FSEditLog.exitIfNoStreams(FSEditLog.java:407)
>     [junit]     at 
> org.apache.hadoop.hdfs.server.namenode.FSEditLog.removeEditsAndStorageDir(FSEditLog.java:432)
>     [junit]     at 
> org.apache.hadoop.hdfs.server.namenode.FSEditLog.removeEditsStreamsAndStorageDirs(FSEditLog.java:468)
>     [junit]     at 
> org.apache.hadoop.hdfs.server.namenode.FSEditLog.logSync(FSEditLog.java:1028)
>     [junit]     at 
> org.apache.hadoop.hdfs.server.namenode.FSNamesystem.logUpdateMasterKey(FSNamesystem.java:5641)
>     [junit]     at 
> org.apache.hadoop.hdfs.security.token.delegation.DelegationTokenSecretManager.logUpdateMasterKey(DelegationTokenSecretManager.java:286)
>     [junit]     at 
> org.apache.hadoop.security.token.delegation.AbstractDelegationTokenSecretManager.updateCurrentKey(AbstractDelegationTokenSecretManager.java:150)
>     [junit]     at 
> org.apache.hadoop.security.token.delegation.AbstractDelegationTokenSecretManager.rollMasterKey(AbstractDelegationTokenSecretManager.java:174)
>     [junit]     at 
> org.apache.hadoop.security.token.delegation.AbstractDelegationTokenSecretManager$ExpiredTokenRemover.run(AbstractDelegationTokenSecretManager.java:385)
>     [junit]     at java.lang.Thread.run(Thread.java:662)
>     [junit] Running org.apache.hadoop.hdfs.security.TestDelegationToken
>     [junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
>     [junit] Test org.apache.hadoop.hdfs.security.TestDelegationToken FAILED 
> (crashed)
> {code}

--
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