You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-dev@hadoop.apache.org by "lujie (JIRA)" <ji...@apache.org> on 2019/03/14 12:10:00 UTC

[jira] [Created] (HDFS-14372) NPE while DN is shutting down

lujie created HDFS-14372:
----------------------------

             Summary: NPE while DN is shutting down
                 Key: HDFS-14372
                 URL: https://issues.apache.org/jira/browse/HDFS-14372
             Project: Hadoop HDFS
          Issue Type: Bug
            Reporter: lujie
            Assignee: lujie


Take the code BPServiceActor#register:
{code:java}
while (shouldRun()) {
try {
   // Use returned registration from namenode with updated fields
    newBpRegistration = bpNamenode.registerDatanode(newBpRegistration);
    newBpRegistration.setNamespaceInfo(nsInfo);
    bpRegistration = newBpRegistration;
    break;
} catch(EOFException e) { // namenode might have just restarted
    ....
}

LOG.info("Block pool " + this + " successfully registered with NN");
bpos.registrationSucceeded(this, bpRegistration);
{code}
if DN is shutdown, then above code will skip the loop, and bpRegistration  == null, the null value will be used  DataNode#bpRegistrationSucceeded:
{code:java}
if(!storage.getDatanodeUuid().equals(bpRegistration.getDatanodeUuid()))
{code}
hence NPE happens
{code:java}
java.lang.NullPointerException
at org.apache.hadoop.hdfs.server.datanode.DataNode.bpRegistrationSucceeded(DataNode.java:1583)
at org.apache.hadoop.hdfs.server.datanode.BPOfferService.registrationSucceeded(BPOfferService.java:425)
at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.register(BPServiceActor.java:807)
at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake(BPServiceActor.java:294)
at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:840)
at java.lang.Thread.run(Thread.java:745)

{code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-dev-unsubscribe@hadoop.apache.org
For additional commands, e-mail: hdfs-dev-help@hadoop.apache.org