You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by ki...@apache.org on 2019/10/21 21:36:07 UTC

[hadoop] branch branch-3.1 updated: HDFS-12749. DN may not send block report to NN after NN restart. Contributed by Xiaoqiao He.

This is an automated email from the ASF dual-hosted git repository.

kihwal pushed a commit to branch branch-3.1
in repository https://gitbox.apache.org/repos/asf/hadoop.git


The following commit(s) were added to refs/heads/branch-3.1 by this push:
     new 362657c  HDFS-12749. DN may not send block report to NN after NN restart. Contributed by Xiaoqiao He.
362657c is described below

commit 362657c1a3518d703085d0a3909c74d8a7f22c93
Author: Kihwal Lee <ki...@apache.org>
AuthorDate: Mon Oct 21 16:35:50 2019 -0500

    HDFS-12749. DN may not send block report to NN after NN restart. Contributed by Xiaoqiao He.
    
    (cherry picked from commit c4e27ef7735acd6f91b73d2ecb0227f8dd75a2e4)
---
 .../hadoop/hdfs/server/datanode/BPServiceActor.java    | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/BPServiceActor.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/BPServiceActor.java
index fe931fc..d4e32da 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/BPServiceActor.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/BPServiceActor.java
@@ -774,11 +774,16 @@ class BPServiceActor implements Runnable {
       } catch(EOFException e) {  // namenode might have just restarted
         LOG.info("Problem connecting to server: " + nnAddr + " :"
             + e.getLocalizedMessage());
-        sleepAndLogInterrupts(1000, "connecting to server");
       } catch(SocketTimeoutException e) {  // namenode is busy
         LOG.info("Problem connecting to server: " + nnAddr);
-        sleepAndLogInterrupts(1000, "connecting to server");
+      } catch(RemoteException e) {
+        LOG.warn("RemoteException in register", e);
+        throw e;
+      } catch(IOException e) {
+        LOG.warn("Problem connecting to server: " + nnAddr);
       }
+      // Try again in a second
+      sleepAndLogInterrupts(1000, "connecting to server");
     }
     
     LOG.info("Block pool " + this + " successfully registered with NN");
@@ -881,6 +886,15 @@ class BPServiceActor implements Runnable {
           if (bpos.processCommandFromActor(cmd, this) == false) {
             return false;
           }
+        } catch (RemoteException re) {
+          String reClass = re.getClassName();
+          if (UnregisteredNodeException.class.getName().equals(reClass) ||
+              DisallowedDatanodeException.class.getName().equals(reClass) ||
+              IncorrectVersionException.class.getName().equals(reClass)) {
+            LOG.warn(this + " is shutting down", re);
+            shouldServiceRun = false;
+            return false;
+          }
         } catch (IOException ioe) {
           LOG.warn("Error processing datanode Command", ioe);
         }


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