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

(cherry picked from commit 82de07c794)
This commit is contained in:
Yizhong Zhang 2020-11-11 01:11:31 +08:00 committed by Wei-Chiu Chuang
parent 0361837c9e
commit 12bfd9194a
2 changed files with 6 additions and 0 deletions

View File

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

View File

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