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-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-dev-h...@hadoop.apache.org