[ https://issues.apache.org/jira/browse/HDFS-7046?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14130072#comment-14130072 ]
Daryn Sharp commented on HDFS-7046: ----------------------------------- Stack trace from an internal 2.5.1-ish build. Line numbers may be off, but demonstrates a delete adjusted safe mode block totals, triggering exit of safe mode, which called {{startSecretManagerIfNecessary}} which only starts if {{getEditLog().isOpenForWrite()}} is true. The edit log stream is actually null. {noformat} [IPC Server handler 84 on 8020] ERROR namenode.FSEditLogLoader: Encountered exception on operation DeleteOp [length=0, path=..., timestamp=1410390000919, RpcClientId=..., RpcCallId=..., opCode=OP_DELETE, txid=...] java.lang.NullPointerException at org.apache.hadoop.hdfs.server.namenode.FSEditLog.logEdit(FSEditLog.java:410) at org.apache.hadoop.hdfs.server.namenode.FSEditLog.logUpdateMasterKey(FSEditLog.java:954) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.logUpdateMasterKey(FSNamesystem.java:6842) at org.apache.hadoop.hdfs.security.token.delegation.DelegationTokenSecretManager.logUpdateMasterKey(DelegationTokenSecretManager.java:378) at org.apache.hadoop.security.token.delegation.AbstractDelegationTokenSecretManager.updateCurrentKey(AbstractDelegationTokenSecretManager.java:232) at org.apache.hadoop.security.token.delegation.AbstractDelegationTokenSecretManager.startThreads(AbstractDelegationTokenSecretManager.java:116) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.startSecretManager(FSNamesystem.java:990) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.startSecretManagerIfNecessary(FSNamesystem.java:1004) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.access$1200(FSNamesystem.java:294) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem$SafeModeInfo.leave(FSNamesystem.java:5208) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem$SafeModeInfo.checkMode(FSNamesystem.java:5283) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem$SafeModeInfo.setBlockTotal(FSNamesystem.java:5320) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem$SafeModeInfo.adjustBlockTotals(FSNamesystem.java:5509) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem$SafeModeInfo.access$2100(FSNamesystem.java:5054) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.adjustSafeModeBlockTotals(FSNamesystem.java:5654) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.removeBlocksAndUpdateSafemodeTotal(FSNamesystem.java:3646) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.removePathAndBlocks(FSNamesystem.java:3610) at org.apache.hadoop.hdfs.server.namenode.FSDirectory.unprotectedDelete(FSDirectory.java:1196) at org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader.applyEditLogOp(FSEditLogLoader.java:506) at org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader.loadEditRecords(FSEditLogLoader.java:228) {noformat} > HA NN can NPE upon transition to active > --------------------------------------- > > Key: HDFS-7046 > URL: https://issues.apache.org/jira/browse/HDFS-7046 > Project: Hadoop HDFS > Issue Type: Bug > Components: namenode > Affects Versions: 3.0.0, 2.5.0 > Reporter: Daryn Sharp > Priority: Critical > > While processing edits, the NN may decide after adjusting block totals to > leave safe mode - in the middle of the edit. Going active starts the secret > manager which generates a new secret key, which in turn generates an edit, > which NPEs because the edit log is not open. > # Transitions should _not_ occur in the middle of an edit. > # The edit log appears to claim it's open for write when the stream isn't > even open -- This message was sent by Atlassian JIRA (v6.3.4#6332)