[ https://issues.apache.org/jira/browse/HDFS-12177?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Brahma Reddy Battula updated HDFS-12177: ---------------------------------------- Resolution: Fixed Hadoop Flags: Reviewed Fix Version/s: 2.8.3 2.8.2 2.7.4 Status: Resolved (was: Patch Available) {{Test failures}} are unrelated. Committed to {{branch-2.8}},{{branch-2.8.2}} and {{branch-2.7}}. [~yangjiandan] thanks a lot for your contribution. > NameNode exits due to setting BlockPlacementPolicy loglevel to Debug > --------------------------------------------------------------------- > > Key: HDFS-12177 > URL: https://issues.apache.org/jira/browse/HDFS-12177 > Project: Hadoop HDFS > Issue Type: Bug > Components: block placement > Affects Versions: 2.8.1 > Reporter: Jiandan Yang > Assignee: Jiandan Yang > Fix For: 2.7.4, 2.8.2, 2.8.3 > > Attachments: HDFS-12177-001-branch-2.7.patch, > HDFS-12177-001-branch-2.8.patch, HDFS-12177-branch-2.7-001-.patch, > HDFS-12177-branch-2.8-001.patch, HDFS_9668_1.patch > > > NameNode exits because the ReplicationMonitor thread internally throws NPE. > The reason for throwing NPE is that the builder field is not initialized whe > do log. > Solution: before appending it should determine whether the builder is null > {code:java} > if (LOG.isDebugEnabled()) { > builder = debugLoggingBuilder.get(); > builder.setLength(0); > builder.append("["); > } > some other codes ... > if (LOG.isDebugEnabled()) { > builder.append("\nNode ").append(NodeBase.getPath(chosenNode)) > .append(" ["); > } > some other codes ... > if (LOG.isDebugEnabled()) { > builder.append("\n]"); > } > {code} > NN exception log is : > {code:java} > java.lang.NullPointerException > at > org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefault.chooseRandom(BlockPlacementPolicyDefault.java:722) > at > org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefault.chooseRandom(BlockPlacementPolicyDefault.java:689) > at > org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefault.chooseFromNextRack(BlockPlacementPolicyDefault.java:640) > at > org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefault.chooseLocalRack(BlockPlacementPolicyDefault.java:608) > at > org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefault.chooseTargetInOrder(BlockPlacementPolicyDefault.java:483) > at > org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefault.chooseTarget(BlockPlacementPolicyDefault.java:390) > at > org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefault.chooseTarget(BlockPlacementPolicyDefault.java:419) > at > org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefault.chooseTarget(BlockPlacementPolicyDefault.java:266) > at > org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefault.chooseTarget(BlockPlacementPolicyDefault.java:119) > at > org.apache.hadoop.hdfs.server.blockmanagement.ReplicationWork.chooseTargets(ReplicationWork.java:55) > at > org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.computeReplicationWorkForBlocks(BlockManager.java:1532) > at > org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.computeReplicationWork(BlockManager.java:1491) > at > org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.computeDatanodeWork(BlockManager.java:3768) > at > org.apache.hadoop.hdfs.server.blockmanagement.BlockManager$ReplicationMonitor.run(BlockManager.java:3720) > at java.lang.Thread.run(Thread.java:834) > {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029) --------------------------------------------------------------------- To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org