[jira] [Updated] (HDFS-5710) FSDirectory#getFullPathName should check inodes against null
[ https://issues.apache.org/jira/browse/HDFS-5710?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jing Zhao updated HDFS-5710: Resolution: Fixed Fix Version/s: 2.4.0 Hadoop Flags: Reviewed Status: Resolved (was: Patch Available) Thanks to Ted for the report and Thank you Uma for the fix! I've committed this to trunk and branch-2. > FSDirectory#getFullPathName should check inodes against null > > > Key: HDFS-5710 > URL: https://issues.apache.org/jira/browse/HDFS-5710 > Project: Hadoop HDFS > Issue Type: Bug >Affects Versions: 2.2.0 >Reporter: Ted Yu >Assignee: Uma Maheswara Rao G > Fix For: 2.4.0 > > Attachments: HDFS-5710.patch, hdfs-5710-output.html > > > From > https://builds.apache.org/job/hbase-0.96-hadoop2/166/testReport/junit/org.apache.hadoop.hbase.mapreduce/TestTableInputFormatScan1/org_apache_hadoop_hbase_mapreduce_TestTableInputFormatScan1/ > : > {code} > 2014-01-01 00:10:15,571 INFO [IPC Server handler 2 on 50198] > blockmanagement.BlockManager(1009): BLOCK* addToInvalidates: > blk_1073741967_1143 127.0.0.1:40188 127.0.0.1:46149 127.0.0.1:41496 > 2014-01-01 00:10:16,559 WARN > [org.apache.hadoop.hdfs.server.blockmanagement.BlockManager$ReplicationMonitor@93935b] > namenode.FSDirectory(1854): Could not get full path. Corresponding file > might have deleted already. > 2014-01-01 00:10:16,560 FATAL > [org.apache.hadoop.hdfs.server.blockmanagement.BlockManager$ReplicationMonitor@93935b] > blockmanagement.BlockManager$ReplicationMonitor(3127): ReplicationMonitor > thread received Runtime exception. > java.lang.NullPointerException > at > org.apache.hadoop.hdfs.server.namenode.FSDirectory.getFullPathName(FSDirectory.java:1871) > at > org.apache.hadoop.hdfs.server.namenode.INode.getFullPathName(INode.java:482) > at > org.apache.hadoop.hdfs.server.namenode.INodeFile.getName(INodeFile.java:316) > at > org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicy.chooseTarget(BlockPlacementPolicy.java:118) > at > org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.computeReplicationWorkForBlocks(BlockManager.java:1259) > at > org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.computeReplicationWork(BlockManager.java:1167) > at > org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.computeDatanodeWork(BlockManager.java:3158) > at > org.apache.hadoop.hdfs.server.blockmanagement.BlockManager$ReplicationMonitor.run(BlockManager.java:3112) > at java.lang.Thread.run(Thread.java:724) > {code} > Looks like getRelativePathINodes() returned null but getFullPathName() didn't > check inodes against null, leading to NPE. -- This message was sent by Atlassian JIRA (v6.1.5#6160)
[jira] [Updated] (HDFS-5710) FSDirectory#getFullPathName should check inodes against null
[ https://issues.apache.org/jira/browse/HDFS-5710?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jing Zhao updated HDFS-5710: Status: Patch Available (was: Open) > FSDirectory#getFullPathName should check inodes against null > > > Key: HDFS-5710 > URL: https://issues.apache.org/jira/browse/HDFS-5710 > Project: Hadoop HDFS > Issue Type: Bug >Affects Versions: 2.2.0 >Reporter: Ted Yu >Assignee: Uma Maheswara Rao G > Attachments: HDFS-5710.patch, hdfs-5710-output.html > > > From > https://builds.apache.org/job/hbase-0.96-hadoop2/166/testReport/junit/org.apache.hadoop.hbase.mapreduce/TestTableInputFormatScan1/org_apache_hadoop_hbase_mapreduce_TestTableInputFormatScan1/ > : > {code} > 2014-01-01 00:10:15,571 INFO [IPC Server handler 2 on 50198] > blockmanagement.BlockManager(1009): BLOCK* addToInvalidates: > blk_1073741967_1143 127.0.0.1:40188 127.0.0.1:46149 127.0.0.1:41496 > 2014-01-01 00:10:16,559 WARN > [org.apache.hadoop.hdfs.server.blockmanagement.BlockManager$ReplicationMonitor@93935b] > namenode.FSDirectory(1854): Could not get full path. Corresponding file > might have deleted already. > 2014-01-01 00:10:16,560 FATAL > [org.apache.hadoop.hdfs.server.blockmanagement.BlockManager$ReplicationMonitor@93935b] > blockmanagement.BlockManager$ReplicationMonitor(3127): ReplicationMonitor > thread received Runtime exception. > java.lang.NullPointerException > at > org.apache.hadoop.hdfs.server.namenode.FSDirectory.getFullPathName(FSDirectory.java:1871) > at > org.apache.hadoop.hdfs.server.namenode.INode.getFullPathName(INode.java:482) > at > org.apache.hadoop.hdfs.server.namenode.INodeFile.getName(INodeFile.java:316) > at > org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicy.chooseTarget(BlockPlacementPolicy.java:118) > at > org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.computeReplicationWorkForBlocks(BlockManager.java:1259) > at > org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.computeReplicationWork(BlockManager.java:1167) > at > org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.computeDatanodeWork(BlockManager.java:3158) > at > org.apache.hadoop.hdfs.server.blockmanagement.BlockManager$ReplicationMonitor.run(BlockManager.java:3112) > at java.lang.Thread.run(Thread.java:724) > {code} > Looks like getRelativePathINodes() returned null but getFullPathName() didn't > check inodes against null, leading to NPE. -- This message was sent by Atlassian JIRA (v6.1.5#6160)
[jira] [Updated] (HDFS-5710) FSDirectory#getFullPathName should check inodes against null
[ https://issues.apache.org/jira/browse/HDFS-5710?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Uma Maheswara Rao G updated HDFS-5710: -- Attachment: HDFS-5710.patch Just returning empty string in case if inodes become null when its called with out holding global lock. getFullPathName called many places. Instead of retuning null and checking evrywhere null, returning empty string may be ok. Attached simple patch with the change. > FSDirectory#getFullPathName should check inodes against null > > > Key: HDFS-5710 > URL: https://issues.apache.org/jira/browse/HDFS-5710 > Project: Hadoop HDFS > Issue Type: Bug >Affects Versions: 2.2.0 >Reporter: Ted Yu >Assignee: Uma Maheswara Rao G > Attachments: HDFS-5710.patch, hdfs-5710-output.html > > > From > https://builds.apache.org/job/hbase-0.96-hadoop2/166/testReport/junit/org.apache.hadoop.hbase.mapreduce/TestTableInputFormatScan1/org_apache_hadoop_hbase_mapreduce_TestTableInputFormatScan1/ > : > {code} > 2014-01-01 00:10:15,571 INFO [IPC Server handler 2 on 50198] > blockmanagement.BlockManager(1009): BLOCK* addToInvalidates: > blk_1073741967_1143 127.0.0.1:40188 127.0.0.1:46149 127.0.0.1:41496 > 2014-01-01 00:10:16,559 WARN > [org.apache.hadoop.hdfs.server.blockmanagement.BlockManager$ReplicationMonitor@93935b] > namenode.FSDirectory(1854): Could not get full path. Corresponding file > might have deleted already. > 2014-01-01 00:10:16,560 FATAL > [org.apache.hadoop.hdfs.server.blockmanagement.BlockManager$ReplicationMonitor@93935b] > blockmanagement.BlockManager$ReplicationMonitor(3127): ReplicationMonitor > thread received Runtime exception. > java.lang.NullPointerException > at > org.apache.hadoop.hdfs.server.namenode.FSDirectory.getFullPathName(FSDirectory.java:1871) > at > org.apache.hadoop.hdfs.server.namenode.INode.getFullPathName(INode.java:482) > at > org.apache.hadoop.hdfs.server.namenode.INodeFile.getName(INodeFile.java:316) > at > org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicy.chooseTarget(BlockPlacementPolicy.java:118) > at > org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.computeReplicationWorkForBlocks(BlockManager.java:1259) > at > org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.computeReplicationWork(BlockManager.java:1167) > at > org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.computeDatanodeWork(BlockManager.java:3158) > at > org.apache.hadoop.hdfs.server.blockmanagement.BlockManager$ReplicationMonitor.run(BlockManager.java:3112) > at java.lang.Thread.run(Thread.java:724) > {code} > Looks like getRelativePathINodes() returned null but getFullPathName() didn't > check inodes against null, leading to NPE. -- This message was sent by Atlassian JIRA (v6.1.5#6160)
[jira] [Updated] (HDFS-5710) FSDirectory#getFullPathName should check inodes against null
[ https://issues.apache.org/jira/browse/HDFS-5710?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Uma Maheswara Rao G updated HDFS-5710: -- Assignee: Uma Maheswara Rao G > FSDirectory#getFullPathName should check inodes against null > > > Key: HDFS-5710 > URL: https://issues.apache.org/jira/browse/HDFS-5710 > Project: Hadoop HDFS > Issue Type: Bug >Affects Versions: 2.2.0 >Reporter: Ted Yu >Assignee: Uma Maheswara Rao G > Attachments: hdfs-5710-output.html > > > From > https://builds.apache.org/job/hbase-0.96-hadoop2/166/testReport/junit/org.apache.hadoop.hbase.mapreduce/TestTableInputFormatScan1/org_apache_hadoop_hbase_mapreduce_TestTableInputFormatScan1/ > : > {code} > 2014-01-01 00:10:15,571 INFO [IPC Server handler 2 on 50198] > blockmanagement.BlockManager(1009): BLOCK* addToInvalidates: > blk_1073741967_1143 127.0.0.1:40188 127.0.0.1:46149 127.0.0.1:41496 > 2014-01-01 00:10:16,559 WARN > [org.apache.hadoop.hdfs.server.blockmanagement.BlockManager$ReplicationMonitor@93935b] > namenode.FSDirectory(1854): Could not get full path. Corresponding file > might have deleted already. > 2014-01-01 00:10:16,560 FATAL > [org.apache.hadoop.hdfs.server.blockmanagement.BlockManager$ReplicationMonitor@93935b] > blockmanagement.BlockManager$ReplicationMonitor(3127): ReplicationMonitor > thread received Runtime exception. > java.lang.NullPointerException > at > org.apache.hadoop.hdfs.server.namenode.FSDirectory.getFullPathName(FSDirectory.java:1871) > at > org.apache.hadoop.hdfs.server.namenode.INode.getFullPathName(INode.java:482) > at > org.apache.hadoop.hdfs.server.namenode.INodeFile.getName(INodeFile.java:316) > at > org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicy.chooseTarget(BlockPlacementPolicy.java:118) > at > org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.computeReplicationWorkForBlocks(BlockManager.java:1259) > at > org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.computeReplicationWork(BlockManager.java:1167) > at > org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.computeDatanodeWork(BlockManager.java:3158) > at > org.apache.hadoop.hdfs.server.blockmanagement.BlockManager$ReplicationMonitor.run(BlockManager.java:3112) > at java.lang.Thread.run(Thread.java:724) > {code} > Looks like getRelativePathINodes() returned null but getFullPathName() didn't > check inodes against null, leading to NPE. -- This message was sent by Atlassian JIRA (v6.1.5#6160)
[jira] [Updated] (HDFS-5710) FSDirectory#getFullPathName should check inodes against null
[ https://issues.apache.org/jira/browse/HDFS-5710?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ted Yu updated HDFS-5710: - Summary: FSDirectory#getFullPathName should check inodes against null (was: FSDirectory#getFullPathName should check for inodes against null) > FSDirectory#getFullPathName should check inodes against null > > > Key: HDFS-5710 > URL: https://issues.apache.org/jira/browse/HDFS-5710 > Project: Hadoop HDFS > Issue Type: Bug >Affects Versions: 2.2.0 >Reporter: Ted Yu > Attachments: hdfs-5710-output.html > > > From > https://builds.apache.org/job/hbase-0.96-hadoop2/166/testReport/junit/org.apache.hadoop.hbase.mapreduce/TestTableInputFormatScan1/org_apache_hadoop_hbase_mapreduce_TestTableInputFormatScan1/ > : > {code} > 2014-01-01 00:10:15,571 INFO [IPC Server handler 2 on 50198] > blockmanagement.BlockManager(1009): BLOCK* addToInvalidates: > blk_1073741967_1143 127.0.0.1:40188 127.0.0.1:46149 127.0.0.1:41496 > 2014-01-01 00:10:16,559 WARN > [org.apache.hadoop.hdfs.server.blockmanagement.BlockManager$ReplicationMonitor@93935b] > namenode.FSDirectory(1854): Could not get full path. Corresponding file > might have deleted already. > 2014-01-01 00:10:16,560 FATAL > [org.apache.hadoop.hdfs.server.blockmanagement.BlockManager$ReplicationMonitor@93935b] > blockmanagement.BlockManager$ReplicationMonitor(3127): ReplicationMonitor > thread received Runtime exception. > java.lang.NullPointerException > at > org.apache.hadoop.hdfs.server.namenode.FSDirectory.getFullPathName(FSDirectory.java:1871) > at > org.apache.hadoop.hdfs.server.namenode.INode.getFullPathName(INode.java:482) > at > org.apache.hadoop.hdfs.server.namenode.INodeFile.getName(INodeFile.java:316) > at > org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicy.chooseTarget(BlockPlacementPolicy.java:118) > at > org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.computeReplicationWorkForBlocks(BlockManager.java:1259) > at > org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.computeReplicationWork(BlockManager.java:1167) > at > org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.computeDatanodeWork(BlockManager.java:3158) > at > org.apache.hadoop.hdfs.server.blockmanagement.BlockManager$ReplicationMonitor.run(BlockManager.java:3112) > at java.lang.Thread.run(Thread.java:724) > {code} > Looks like getRelativePathINodes() returned null but getFullPathName() didn't > check inodes against null, leading to NPE. -- This message was sent by Atlassian JIRA (v6.1.5#6160)