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 <szets...@apache.org>
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 <t...@apache.org>
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

Reply via email to