浏览代码

HADOOP-17142. Fix outdated properties of JournalNode when performing rollback. Contributed by Deegue.

Yizhong Zhang 4 年之前
父节点
当前提交
82de07c794

+ 4 - 0
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/server/JNStorage.java

@@ -236,6 +236,10 @@ class JNStorage extends Storage {
   
   void analyzeStorage() throws IOException {
     this.state = sd.analyzeStorage(StartupOption.REGULAR, this);
+    refreshStorage();
+  }
+
+  void refreshStorage() throws IOException {
     if (state == StorageState.NORMAL) {
       readProperties(sd);
     }

+ 2 - 0
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/server/Journal.java

@@ -1178,6 +1178,8 @@ public class Journal implements Closeable {
     // directory will be renamed.  It will be reopened lazily on next access.
     IOUtils.cleanupWithLogger(LOG, committedTxnId);
     storage.getJournalManager().doRollback();
+    // HADOOP-17142: refresh properties after rollback performed.
+    storage.refreshStorage();
   }
 
   synchronized void discardSegments(long startTxId) throws IOException {