Преглед изворни кода

HDDS-1748. Error message for 3 way commit failure is not verbose. Contributed by Supratim Deka (#1051)

supratimdeka пре 6 година
родитељ
комит
e0fa1040af

+ 4 - 3
hadoop-hdds/client/src/main/java/org/apache/hadoop/hdds/scm/XceiverClientRatis.java

@@ -259,7 +259,7 @@ public final class XceiverClientRatis extends XceiverClientSpi {
       replyFuture.get(timeout, TimeUnit.MILLISECONDS);
     } catch (Exception e) {
       Throwable t = HddsClientUtils.checkForException(e);
-      LOG.warn("3 way commit failed ", e);
+      LOG.warn("3 way commit failed on pipeline {}", pipeline, e);
       if (t instanceof GroupMismatchException) {
         throw e;
       }
@@ -278,8 +278,9 @@ public final class XceiverClientRatis extends XceiverClientSpi {
         // replication.
         commitInfoMap.remove(address);
         LOG.info(
-            "Could not commit " + index + " to all the nodes. Server " + address
-                + " has failed." + " Committed by majority.");
+            "Could not commit index {} on pipeline {} to all the nodes. " +
+            "Server {} has failed. Committed by majority.",
+            index, pipeline, address);
       });
     }
     clientReply.setLogIndex(index);

+ 4 - 3
hadoop-hdds/client/src/main/java/org/apache/hadoop/hdds/scm/storage/BlockOutputStream.java

@@ -356,9 +356,10 @@ public class BlockOutputStream extends OutputStream {
       if (reply != null) {
         List<DatanodeDetails> dnList = reply.getDatanodes();
         if (!dnList.isEmpty()) {
-          if (failedServers.isEmpty()) {
-            failedServers = new ArrayList<>();
-          }
+          Pipeline pipe = xceiverClient.getPipeline();
+
+          LOG.warn("Failed to commit BlockId {} on {}. Failed nodes: {}",
+              blockID, pipe, dnList);
           failedServers.addAll(dnList);
         }
       }