Repository: hadoop
Updated Branches:
  refs/heads/trunk bb6a3c833 -> 077a5eed9


HDFS-12358. Handle IOException when transferring edit log to Journal current 
dir through JN sync. Contributed by Hanisha Koneru.


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/077a5eed
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/077a5eed
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/077a5eed

Branch: refs/heads/trunk
Commit: 077a5eed9f505f3ad8fe46d86f3fabed762eeb15
Parents: bb6a3c8
Author: Arpit Agarwal <[email protected]>
Authored: Sat Aug 26 22:47:55 2017 -0700
Committer: Arpit Agarwal <[email protected]>
Committed: Sat Aug 26 22:47:55 2017 -0700

----------------------------------------------------------------------
 .../hdfs/qjournal/server/JournalNodeSyncer.java | 23 +++++++++++---------
 1 file changed, 13 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/077a5eed/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/server/JournalNodeSyncer.java
----------------------------------------------------------------------
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/server/JournalNodeSyncer.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/server/JournalNodeSyncer.java
index 537ba0a..0155b85 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/server/JournalNodeSyncer.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/server/JournalNodeSyncer.java
@@ -403,20 +403,23 @@ public class JournalNodeSyncer {
     LOG.info("Downloaded file " + tmpEditsFile.getName() + " of size " +
         tmpEditsFile.length() + " bytes.");
 
-    final boolean moveSuccess = journal.moveTmpSegmentToCurrent(tmpEditsFile,
-        finalEditsFile, log.getEndTxId());
-    if (!moveSuccess) {
-      // If move is not successful, delete the tmpFile
-      LOG.debug("Move to current directory unsuccessful. Deleting temporary " +
-          "file: " + tmpEditsFile);
-      if (!tmpEditsFile.delete()) {
+    boolean moveSuccess = false;
+    try {
+      moveSuccess = journal.moveTmpSegmentToCurrent(tmpEditsFile,
+          finalEditsFile, log.getEndTxId());
+    } catch (IOException e) {
+      LOG.info("Could not move %s to current directory.", tmpEditsFile);
+    } finally {
+      if (tmpEditsFile.exists() && !tmpEditsFile.delete()) {
         LOG.warn("Deleting " + tmpEditsFile + " has failed");
       }
-      return false;
-    } else {
+    }
+    if (moveSuccess) {
       metrics.incrNumEditLogsSynced();
+      return true;
+    } else {
+      return false;
     }
-    return true;
   }
 
   private static DataTransferThrottler getThrottler(Configuration conf) {


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to