You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by aa...@apache.org on 2019/08/23 06:29:09 UTC
[hadoop] branch trunk updated: HDFS-14396. Failed to load image
from FSImageFile when downgrade from 3.x to 2.x. Contributed by Fei Hui.
This is an automated email from the ASF dual-hosted git repository.
aajisaka pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/hadoop.git
The following commit(s) were added to refs/heads/trunk by this push:
new bd7baea HDFS-14396. Failed to load image from FSImageFile when downgrade from 3.x to 2.x. Contributed by Fei Hui.
bd7baea is described below
commit bd7baea5a5d4ff351645e34c0ef09b7ba82f4285
Author: Akira Ajisaka <aa...@apache.org>
AuthorDate: Fri Aug 23 15:27:32 2019 +0900
HDFS-14396. Failed to load image from FSImageFile when downgrade from 3.x to 2.x. Contributed by Fei Hui.
---
.../hdfs/server/namenode/FSImageFormatProtobuf.java | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSImageFormatProtobuf.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSImageFormatProtobuf.java
index 3144d4b..51379b8 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSImageFormatProtobuf.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSImageFormatProtobuf.java
@@ -813,6 +813,8 @@ public final class FSImageFormatProtobuf {
FSImageCompression compression, String filePath) throws IOException {
StartupProgress prog = NameNode.getStartupProgress();
MessageDigest digester = MD5Hash.getDigester();
+ int layoutVersion =
+ context.getSourceNamesystem().getEffectiveLayoutVersion();
underlyingOutputStream = new DigestOutputStream(new BufferedOutputStream(
fout), digester);
@@ -839,11 +841,16 @@ public final class FSImageFormatProtobuf {
// depends on this behavior.
context.checkCancelled();
+ Step step;
+
// Erasure coding policies should be saved before inodes
- Step step = new Step(StepType.ERASURE_CODING_POLICIES, filePath);
- prog.beginStep(Phase.SAVING_CHECKPOINT, step);
- saveErasureCodingSection(b);
- prog.endStep(Phase.SAVING_CHECKPOINT, step);
+ if (NameNodeLayoutVersion.supports(
+ NameNodeLayoutVersion.Feature.ERASURE_CODING, layoutVersion)) {
+ step = new Step(StepType.ERASURE_CODING_POLICIES, filePath);
+ prog.beginStep(Phase.SAVING_CHECKPOINT, step);
+ saveErasureCodingSection(b);
+ prog.endStep(Phase.SAVING_CHECKPOINT, step);
+ }
step = new Step(StepType.INODES, filePath);
prog.beginStep(Phase.SAVING_CHECKPOINT, step);
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org