Skip to content

Commit

Permalink
HDFS-16338. Correct fsimage error configuration message (#3684). Cont…
Browse files Browse the repository at this point in the history
…ributed by guophilipse.

Reviewed-by: cxorm <lianp964@gmail.com>
Reviewed-by: tomscut <litao@bigo.sg>
Signed-off-by: Ayush Saxena <ayushsaxena@apache.org>
  • Loading branch information
GuoPhilipse authored Dec 6, 2021
1 parent e8e69de commit 1509ea5
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -582,12 +582,12 @@ void doImportCheckpoint(FSNamesystem target) throws IOException {

if (checkpointDirs == null || checkpointDirs.isEmpty()) {
throw new IOException("Cannot import image from a checkpoint. "
+ "\"dfs.namenode.checkpoint.dir\" is not set." );
+ "\"dfs.namenode.checkpoint.dir\" is not set.");
}

if (checkpointEditsDirs == null || checkpointEditsDirs.isEmpty()) {
throw new IOException("Cannot import image from a checkpoint. "
+ "\"dfs.namenode.checkpoint.dir\" is not set." );
+ "\"dfs.namenode.checkpoint.edits.dir\" is not set.");
}

FSImage realImage = target.getFSImage();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@
import org.apache.hadoop.hdfs.util.MD5FileUtils;
import org.apache.hadoop.test.GenericTestUtils;
import org.apache.hadoop.test.PathUtils;
import org.apache.hadoop.test.LambdaTestUtils;
import org.apache.hadoop.util.Time;
import org.junit.Assert;
import org.junit.Assume;
Expand Down Expand Up @@ -275,6 +276,22 @@ public void testSaveAndLoadStripedINodeFile() throws IOException{
}
}

@Test
public void testImportCheckpoint() throws Exception{
Configuration conf = new Configuration();
conf.set(DFSConfigKeys.DFS_NAMENODE_CHECKPOINT_EDITS_DIR_KEY, "");
try(MiniDFSCluster cluster = new MiniDFSCluster.Builder(conf).build()){
cluster.waitActive();
FSNamesystem fsn = cluster.getNamesystem();
FSImage fsImage= new FSImage(conf);
LambdaTestUtils.intercept(
IOException.class,
"Cannot import image from a checkpoint. "
+ "\"dfs.namenode.checkpoint.edits.dir\" is not set.",
() -> fsImage.doImportCheckpoint(fsn));
}
}

/**
* Test if a INodeFileUnderConstruction with BlockInfoStriped can be
* saved and loaded by FSImageSerialization
Expand Down

0 comments on commit 1509ea5

Please sign in to comment.