diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSUpgradeFromImage.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSUpgradeFromImage.java index 1ba36f3ca98..60bea7ab59f 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSUpgradeFromImage.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSUpgradeFromImage.java @@ -173,7 +173,7 @@ public class TestDFSUpgradeFromImage { private static FSInputStream dfsOpenFileWithRetries(DistributedFileSystem dfs, String pathName) throws IOException { IOException exc = null; - for (int tries = 0; tries < 10; tries++) { + for (int tries = 0; tries < 30; tries++) { try { return dfs.dfs.open(pathName); } catch (IOException e) { @@ -184,6 +184,7 @@ public class TestDFSUpgradeFromImage { throw exc; } try { + LOG.info("Open failed. " + tries + " times. Retrying."); Thread.sleep(1000); } catch (InterruptedException ignored) {} } @@ -570,8 +571,17 @@ public class TestDFSUpgradeFromImage { String pathStr = path.toString(); HdfsFileStatus status = dfs.getFileInfo(pathStr); if (!status.isDir()) { - dfs.recoverLease(pathStr); - return; + for (int retries = 10; retries > 0; retries--) { + if (dfs.recoverLease(pathStr)) { + return; + } else { + try { + Thread.sleep(1000); + } catch (InterruptedException ignored) { + } + } + } + throw new IOException("Failed to recover lease of " + path); } byte prev[] = HdfsFileStatus.EMPTY_NAME; DirectoryListing dirList;