From 8228bc6479a3ceb1abac4cac2c4ec6509a0df599 Mon Sep 17 00:00:00 2001 From: runzhiwang Date: Wed, 24 Jun 2020 17:05:40 +0800 Subject: [PATCH 1/3] HDDS-3861. Fix handlePipelineFailure throw exception if role is follower --- .../common/transport/server/ratis/XceiverServerRatis.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/XceiverServerRatis.java b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/XceiverServerRatis.java index 39e23e4d11ac..5ae8096ad2e9 100644 --- a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/XceiverServerRatis.java +++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/XceiverServerRatis.java @@ -552,6 +552,10 @@ private void handlePipelineFailure(RaftGroupId groupId, msg = datanode + " is in candidate state for " + roleInfoProto.getCandidateInfo().getLastLeaderElapsedTimeMs() + "ms"; break; + case FOLLOWER: + msg = datanode + " is in follower state for " + + roleInfoProto.getRoleElapsedTimeMs() + "ms"; + break; case LEADER: StringBuilder sb = new StringBuilder(); sb.append(datanode).append(" has not seen follower/s"); From 2ea1fa691ce5b8caa79cb01357bd9d3c1e10e59b Mon Sep 17 00:00:00 2001 From: runzhiwang Date: Fri, 26 Jun 2020 10:24:20 +0800 Subject: [PATCH 2/3] fix code review --- .../common/transport/server/ratis/XceiverServerRatis.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/XceiverServerRatis.java b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/XceiverServerRatis.java index 5ae8096ad2e9..1b0ad3cfb1b6 100644 --- a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/XceiverServerRatis.java +++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/XceiverServerRatis.java @@ -553,7 +553,11 @@ private void handlePipelineFailure(RaftGroupId groupId, roleInfoProto.getCandidateInfo().getLastLeaderElapsedTimeMs() + "ms"; break; case FOLLOWER: - msg = datanode + " is in follower state for " + + msg = datanode + " closes pipeline when installSnapshot from leader " + + "because leader snapshot doesn't contain any data to replay, " + + "all the log entries prior to the snapshot might have been purged." + + "So follower should not try to install snapshot from leader but" + + "can close the pipeline here. It's in follower state for " + roleInfoProto.getRoleElapsedTimeMs() + "ms"; break; case LEADER: From b4765d2b7770443eb8096d2adb11c2081d4187eb Mon Sep 17 00:00:00 2001 From: runzhiwang Date: Fri, 26 Jun 2020 15:36:02 +0800 Subject: [PATCH 3/3] triger ci