Secondary Namenode dies when a mkdir on a non-existent parent directory is run
------------------------------------------------------------------------------
Key: HDFS-1904
URL: https://issues.apache.org/jira/browse/HDFS-1904
Project: Hadoop HDFS
Issue Type: Bug
Components: name-node
Affects Versions: 0.23.0
Environment: Linux
Reporter: Ravi Prakash
Priority: Critical
Steps to reproduce:
1. I pulled trunk using git. The last git commit were
For hadoop-common
commit bbd8581a905aa734015efb3a0366b33639f4c16f
Author: Tsz-wo Sze <[email protected]>
Date: Fri May 6 22:03:13 2011 +0000
Remove the empty file accidentally checked it with HADOOP-7249.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1100400
13f79535-47bb-0310-9956-ffa450edef68
For hadoop-hdfs
commit 1ca9d6518fe1341ca4082ef61ea40d2daa215ee7
Author: Todd Lipcon <[email protected]>
Date: Sun May 8 20:43:24 2011 +0000
HDFS-1866. Document dfs.datanode.max.transfer.threads in hdfs-default.xml.
Contributed by Harsh J Chouraria.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/hdfs/trunk@1100811
13f79535-47bb-0310-9956-ffa450edef68
2. Built using ant mvn-install. Setup three directories in dfs.name.dir.
Formatted namenode. Started using start-dfs.sh
3.
[ravihadoop@localhost hadoop]$ hdfs dfs -ls / # Initially the HDFS filesystem
is empty
[ravihadoop@localhost hadoop]$ hdfs dfs -mkdir /home/ravihadoop # /home here
doesn't exist. But mkdir doesn't complain
[ravihadoop@localhost hadoop]$ hdfs dfs -ls /
Found 1 items
drwxr-xr-x - ravihadoop supergroup 0 2011-05-09 12:24 /home
[ravihadoop@localhost hadoop]$ hdfs dfs -ls /home
Found 1 items
drwxr-xr-x - ravihadoop supergroup 0 2011-05-09 12:24
/home/ravihadoop
[ravihadoop@localhost hadoop]$ hdfs dfs -put ~/test.sh /home/ravihadoop/test.sh
[ravihadoop@localhost hadoop]$
The last command makes the Secondary namenode keel over and die with this
exception:
2011-05-09 12:25:03,611 INFO org.apache.hadoop.hdfs.util.GSet: VM type =
32-bit
2011-05-09 12:25:03,611 INFO org.apache.hadoop.hdfs.util.GSet: 2% max memory =
19.26 MB
2011-05-09 12:25:03,611 INFO org.apache.hadoop.hdfs.util.GSet: capacity =
2^22 = 4194304 entries
2011-05-09 12:25:03,611 INFO org.apache.hadoop.hdfs.util.GSet:
recommended=4194304, actual=4194304
2011-05-09 12:25:03,750 INFO
org.apache.hadoop.hdfs.server.namenode.FSNamesystem: fsOwner=ravihadoop
2011-05-09 12:25:03,750 INFO
org.apache.hadoop.hdfs.server.namenode.FSNamesystem: supergroup=supergroup
2011-05-09 12:25:03,750 INFO
org.apache.hadoop.hdfs.server.namenode.FSNamesystem: isPermissionEnabled=true
2011-05-09 12:25:03,750 INFO
org.apache.hadoop.hdfs.server.namenode.FSNamesystem:
dfs.block.invalidate.limit=1000
2011-05-09 12:25:03,750 INFO
org.apache.hadoop.hdfs.server.namenode.FSNamesystem: isBlockTokenEnabled=false
blockKeyUpdateInterval=0 min(s), blockTokenLifetime=0 min(s)
2011-05-09 12:25:03,751 INFO org.apache.hadoop.hdfs.server.namenode.NameNode:
Caching file names occuring more than 10 times
2011-05-09 12:25:03,755 ERROR
org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode: Throwable Exception
in doCheckpoint:
2011-05-09 12:25:03,755 ERROR
org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode:
java.lang.NullPointerException: Panic: parent does not exist
at
org.apache.hadoop.hdfs.server.namenode.FSDirectory.addChild(FSDirectory.java:1693)
at
org.apache.hadoop.hdfs.server.namenode.FSDirectory.addChild(FSDirectory.java:1707)
at
org.apache.hadoop.hdfs.server.namenode.FSDirectory.addNode(FSDirectory.java:1544)
at
org.apache.hadoop.hdfs.server.namenode.FSDirectory.unprotectedAddFile(FSDirectory.java:288)
at
org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader.loadEditRecords(FSEditLogLoader.java:234)
at
org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader.loadFSEdits(FSEditLogLoader.java:116)
at
org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader.loadFSEdits(FSEditLogLoader.java:62)
at
org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSEdits(FSImage.java:723)
at
org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode$CheckpointStorage.doMerge(SecondaryNameNode.java:720)
at
org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode$CheckpointStorage.access$500(SecondaryNameNode.java:610)
at
org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.doMerge(SecondaryNameNode.java:487)
at
org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.doCheckpoint(SecondaryNameNode.java:448)
at
org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.doWork(SecondaryNameNode.java:312)
at
org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.run(SecondaryNameNode.java:276)
at java.lang.Thread.run(Thread.java:619)
2011-05-09 12:25:03,756 INFO
org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down SecondaryNameNode at
localhost.localdomain/192.168.1.4
************************************************************/
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira