[ 
https://issues.apache.org/jira/browse/HDFS-8428?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14549852#comment-14549852
 ] 

Yi Liu commented on HDFS-8428:
------------------------------

I also see the {{NullPointerException}} in {{TestDFSStripedInputStream}}, 
although the test passed, but actually there is exception:
{code}
2015-05-19 13:27:08,944 WARN  ipc.Server (Server.java:run(2190)) - IPC Server 
handler 2 on 50789, call 
org.apache.hadoop.hdfs.server.protocol.DatanodeProtocol.blockReceivedAndDeleted 
from 127.0.0.1:59424 Call#123 Retry#0
java.lang.NullPointerException
        at 
org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.getStoredBlock(BlockManager.java:3581)
        at 
org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.removeStoredBlock(BlockManager.java:3209)
        at 
org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.processIncrementalBlockReport(BlockManager.java:3390)
        at 
org.apache.hadoop.hdfs.server.namenode.FSNamesystem.processIncrementalBlockReport(FSNamesystem.java:5545)
        at 
org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.blockReceivedAndDeleted(NameNodeRpcServer.java:1344)
        at 
org.apache.hadoop.hdfs.protocolPB.DatanodeProtocolServerSideTranslatorPB.blockReceivedAndDeleted(DatanodeProtocolServerSideTranslatorPB.java:222)
        at 
org.apache.hadoop.hdfs.protocol.proto.DatanodeProtocolProtos$DatanodeProtocolService$2.callBlockingMethod(DatanodeProtocolProtos.java:29418)
        at 
org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:636)
        at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:976)
        at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2171)
        at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:415)
        at 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1666)
        at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2166)
{code}

> Erasure Coding: Fix the NullPointerException when deleting file
> ---------------------------------------------------------------
>
>                 Key: HDFS-8428
>                 URL: https://issues.apache.org/jira/browse/HDFS-8428
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>            Reporter: Yi Liu
>            Assignee: Yi Liu
>
> In HDFS, when removing some file, NN will also remove all its blocks from 
> {{BlocksMap}}, and send {{DNA_INVALIDATE}} (invalidate blocks) commands to 
> datanodes.  After datanodes successfully delete the block replicas, will 
> report {{DELETED_BLOCK}} to NameNode.
> snippet code logic in {{BlockManager#processIncrementalBlockReport}} is as 
> following
> {code}
> case DELETED_BLOCK:
>         removeStoredBlock(storageInfo, getStoredBlock(rdbi.getBlock()), node);
>         ...
> {code}
> {code}
> private void removeStoredBlock(DatanodeStorageInfo storageInfo, Block block,
>       DatanodeDescriptor node) {
>     if (shouldPostponeBlocksFromFuture &&
>         namesystem.isGenStampInFuture(block)) {
>       queueReportedBlock(storageInfo, block, null,
>           QUEUE_REASON_FUTURE_GENSTAMP);
>       return;
>     }
>     removeStoredBlock(getStoredBlock(block), node);
>   }
> {code}
> In EC branch, we add {{getStoredBlock}}. There is {{NullPointerException}} 
> when handling {{DELETED_BLOCK}} of incrementalBlockReport from DataNode after 
> delete a file, since the block is already removed, we need to check.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to