Wei-Chiu Chuang created HDFS-9249:
-------------------------------------
Summary: NPE thrown if an IOException is thrown in NameNode.<init>
Key: HDFS-9249
URL: https://issues.apache.org/jira/browse/HDFS-9249
Project: Hadoop HDFS
Issue Type: Bug
Reporter: Wei-Chiu Chuang
Assignee: Wei-Chiu Chuang
Priority: Minor
This issue was found when running test case TestBackupNode.testCheckpointNode,
but upon closer look, the problem is not due to the test case.
Looks like an IOException was thrown in
try {
initializeGenericKeys(conf, nsId, namenodeId);
initialize(conf);
try {
haContext.writeLock();
state.prepareToEnterState(haContext);
state.enterState(haContext);
} finally {
haContext.writeUnlock();
}
causing the namenode to stop, but the namesystem was not yet properly
instantiated, causing NPE.
I tried to reproduce locally, but to no avail.
Because I could not reproduce the bug, and the log does not indicate what
caused the IOException, I suggest make this a supportability JIRA to log the
exception for future improvement.
Stacktrace
java.lang.NullPointerException: null
at org.apache.hadoop.hdfs.server.namenode.NameNode.getFSImage(NameNode.java:906)
at org.apache.hadoop.hdfs.server.namenode.BackupNode.stop(BackupNode.java:210)
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:827)
at org.apache.hadoop.hdfs.server.namenode.BackupNode.<init>(BackupNode.java:89)
at
org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1474)
at
org.apache.hadoop.hdfs.server.namenode.TestBackupNode.startBackupNode(TestBackupNode.java:102)
at
org.apache.hadoop.hdfs.server.namenode.TestBackupNode.testCheckpoint(TestBackupNode.java:298)
at
org.apache.hadoop.hdfs.server.namenode.TestBackupNode.testCheckpointNode(TestBackupNode.java:130)
The last few lines of log:
2015-10-14 19:45:07,807 INFO namenode.NameNode
(NameNode.java:createNameNode(1422)) - createNameNode [-checkpoint]
2015-10-14 19:45:07,807 INFO impl.MetricsSystemImpl
(MetricsSystemImpl.java:init(158)) - CheckpointNode metrics system started
(again)
2015-10-14 19:45:07,808 INFO namenode.NameNode
(NameNode.java:setClientNamenodeAddress(402)) - fs.defaultFS is
hdfs://localhost:37835
2015-10-14 19:45:07,808 INFO namenode.NameNode
(NameNode.java:setClientNamenodeAddress(422)) - Clients are to use
localhost:37835 to access this namenode/service.
2015-10-14 19:45:07,810 INFO hdfs.MiniDFSCluster
(MiniDFSCluster.java:shutdown(1708)) - Shutting down the Mini HDFS Cluster
2015-10-14 19:45:07,810 INFO namenode.FSNamesystem
(FSNamesystem.java:stopActiveServices(1298)) - Stopping services started for
active state
2015-10-14 19:45:07,811 INFO namenode.FSEditLog
(FSEditLog.java:endCurrentLogSegment(1228)) - Ending log segment 1
2015-10-14 19:45:07,811 INFO namenode.FSNamesystem
(FSNamesystem.java:run(5306)) - NameNodeEditLogRoller was interrupted, exiting
2015-10-14 19:45:07,811 INFO namenode.FSEditLog
(FSEditLog.java:printStatistics(703)) - Number of transactions: 3 Total time
for transactions(ms): 0 Number of transactions batched in Syncs: 0 Number of
syncs: 4 SyncTimes(ms): 2 1
2015-10-14 19:45:07,811 INFO namenode.FSNamesystem
(FSNamesystem.java:run(5373)) - LazyPersistFileScrubber was interrupted, exiting
2015-10-14 19:45:07,822 INFO namenode.FileJournalManager
(FileJournalManager.java:finalizeLogSegment(142)) - Finalizing edits file
/data/jenkins/workspace/CDH5.5.0-Hadoop-HDFS-2.6.0/hadoop-hdfs-project/hadoop-hdfs/target/test/data/dfs/name1/current/edits_inprogress_0000000000000000001
->
/data/jenkins/workspace/CDH5.5.0-Hadoop-HDFS-2.6.0/hadoop-hdfs-project/hadoop-hdfs/target/test/data/dfs/name1/current/edits_0000000000000000001-0000000000000000003
2015-10-14 19:45:07,835 INFO namenode.FileJournalManager
(FileJournalManager.java:finalizeLogSegment(142)) - Finalizing edits file
/data/jenkins/workspace/CDH5.5.0-Hadoop-HDFS-2.6.0/hadoop-hdfs-project/hadoop-hdfs/target/test/data/dfs/name2/current/edits_inprogress_0000000000000000001
->
/data/jenkins/workspace/CDH5.5.0-Hadoop-HDFS-2.6.0/hadoop-hdfs-project/hadoop-hdfs/target/test/data/dfs/name2/current/edits_0000000000000000001-0000000000000000003
2015-10-14 19:45:07,836 INFO blockmanagement.CacheReplicationMonitor
(CacheReplicationMonitor.java:run(169)) - Shutting down CacheReplicationMonitor
2015-10-14 19:45:07,836 INFO ipc.Server (Server.java:stop(2485)) - Stopping
server on 37835
2015-10-14 19:45:07,837 INFO ipc.Server (Server.java:run(718)) - Stopping IPC
Server listener on 37835
2015-10-14 19:45:07,837 INFO ipc.Server (Server.java:run(844)) - Stopping IPC
Server Responder
2015-10-14 19:45:07,837 INFO blockmanagement.BlockManager
(BlockManager.java:run(3781)) - Stopping ReplicationMonitor.
2015-10-14 19:45:07,838 WARN blockmanagement.DecommissionManager
(DecommissionManager.java:run(78)) - Monitor interrupted:
java.lang.InterruptedException: sleep interrupted
2015-10-14 19:45:07,844 INFO namenode.FSNamesystem
(FSNamesystem.java:stopActiveServices(1298)) - Stopping services started for
active state
2015-10-14 19:45:07,845 INFO namenode.FSNamesystem
(FSNamesystem.java:stopStandbyServices(1386)) - Stopping services started for
standby state
2015-10-14 19:45:07,848 INFO mortbay.log (Slf4jLog.java:info(67)) - Stopped
HttpServer2$SelectChannelConnectorWithSafeStartup@localhost:0
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)