hadoop-common-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "dhruba borthakur (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HADOOP-1195) NullPointerException in FSNamesystem due to getDatanode() return value is not checked
Date Tue, 22 Jan 2008 19:43:34 GMT

    [ https://issues.apache.org/jira/browse/HADOOP-1195?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12561438#action_12561438
] 

dhruba borthakur commented on HADOOP-1195:
------------------------------------------

setDatanodeDead() sets the dead bit on the datanode if it finds the datanode. Otherwise it
does nothing. The current code in the "trunk" will throw a NPE if this condition occurs. The
premise of this bug fix is that a "Null Pointer Exception" is very bad. The namenode code
should be able to throw explicit exceptions on error conditions.

> NullPointerException in FSNamesystem due to getDatanode() return value is not checked
> -------------------------------------------------------------------------------------
>
>                 Key: HADOOP-1195
>                 URL: https://issues.apache.org/jira/browse/HADOOP-1195
>             Project: Hadoop
>          Issue Type: Bug
>          Components: dfs
>            Reporter: Konstantin Shvachko
>            Assignee: dhruba borthakur
>             Fix For: 0.16.0
>
>         Attachments: datanodeNullPointer.patch
>
>
> FSNamesystem.getDatanode( nodeID ) returns null if the node is not found.
> There are several places where we do not check wether the returned node is null, e.g.
> FSNamesystem.processReport()
> FSNamesystem.setDatanodeDead()
> FSNamesystem.invalidateBlock()
> FSNamesystem.verifyNodeRegistration()
> I'm getting the following NPE:
> 07/04/02 17:31:50 WARN dfs.DataNode: org.apache.hadoop.ipc.RemoteException: java.io.IOException:
java.lang.NullPointerException
>     at org.apache.hadoop.dfs.FSNamesystem.shouldNodeShutdown(FSNamesystem.java:3306)
>     at org.apache.hadoop.dfs.FSNamesystem.processReport(FSNamesystem.java:2012)
>     at org.apache.hadoop.dfs.NameNode.blockReport(NameNode.java:654)
>     at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)
>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>     at java.lang.reflect.Method.invoke(Method.java:585)
>     at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:341)
>     at org.apache.hadoop.ipc.Server$Handler.run(Server.java:580)
>     at org.apache.hadoop.ipc.Client.call(Client.java:473)
>     at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:164)
>     at org.apache.hadoop.dfs.$Proxy1.blockReport(Unknown Source)
>     at org.apache.hadoop.dfs.DataNode.offerService(DataNode.java:460)
>     at org.apache.hadoop.dfs.DataNode.run(DataNode.java:1095)
>     at org.apache.hadoop.dfs.MiniDFSCluster$DataNodeRunner.run(MiniDFSCluster.java:160)
>     at java.lang.Thread.run(Thread.java:595)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message