hadoop-common-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Raghu Angadi (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 20:01:36 GMT

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

Raghu Angadi commented on HADOOP-1195:
--------------------------------------

> The premise of this bug fix is that a "Null Pointer Exception" is very bad. 
IMHO it is bad when null is expected (e.g. user arguments, RPC calls), no need to check for
null when the context does not expect a null. I mean it does not need cover up some other
bug. But I am not strongly against it. Your choice.

how about replacing the 2nd hunk with:

{noformat}
@@ -1967,8 +1967,7 @@
             (now() - heartbeatExpireInterval));
   }
     
-  void setDatanodeDead(DatanodeID nodeID) throws IOException {
-    DatanodeDescriptor node = getDatanode(nodeID);
+  private void setDatanodeDead(DatanodeDescriptor node) throws IOException {
     node.setLastUpdate(0);
   }
 
{noformat}



> 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