HDFS-11252. TestFileTruncate#testTruncateWithDataNodesRestartImmediately can fail with BindException. Contributed by Yiqun Lin.
(cherry picked from commit 0ddb8defad6a7fd5eb69847d1789ba51952c0cf0)
This commit is contained in:
parent
88597991b0
commit
5d46d5d4c6
@ -680,13 +680,7 @@ public void testTruncateWithDataNodesRestart() throws Exception {
|
||||
int toTruncateLength = 1;
|
||||
int newLength = startingFileSize - toTruncateLength;
|
||||
cluster.getDataNodes().get(dn).shutdown();
|
||||
try {
|
||||
boolean isReady = fs.truncate(p, newLength);
|
||||
assertFalse(isReady);
|
||||
} finally {
|
||||
cluster.restartDataNode(dn, true, true);
|
||||
cluster.waitActive();
|
||||
}
|
||||
truncateAndRestartDN(p, dn, newLength);
|
||||
checkBlockRecovery(p);
|
||||
|
||||
LocatedBlock newBlock = getLocatedBlocks(p).getLastLocatedBlock();
|
||||
@ -739,13 +733,7 @@ public void testCopyOnTruncateWithDataNodesRestart() throws Exception {
|
||||
int toTruncateLength = 1;
|
||||
int newLength = startingFileSize - toTruncateLength;
|
||||
cluster.getDataNodes().get(dn).shutdown();
|
||||
try {
|
||||
boolean isReady = fs.truncate(p, newLength);
|
||||
assertFalse(isReady);
|
||||
} finally {
|
||||
cluster.restartDataNode(dn, true, true);
|
||||
cluster.waitActive();
|
||||
}
|
||||
truncateAndRestartDN(p, dn, newLength);
|
||||
checkBlockRecovery(p);
|
||||
|
||||
LocatedBlock newBlock = getLocatedBlocks(p).getLastLocatedBlock();
|
||||
@ -799,8 +787,8 @@ public void testTruncateWithDataNodesRestartImmediately() throws Exception {
|
||||
boolean isReady = fs.truncate(p, newLength);
|
||||
assertFalse(isReady);
|
||||
|
||||
cluster.restartDataNode(dn0, true, true);
|
||||
cluster.restartDataNode(dn1, true, true);
|
||||
cluster.restartDataNode(dn0, false, true);
|
||||
cluster.restartDataNode(dn1, false, true);
|
||||
cluster.waitActive();
|
||||
checkBlockRecovery(p);
|
||||
|
||||
@ -1240,4 +1228,15 @@ static void restartCluster(StartupOption o)
|
||||
.build();
|
||||
fs = cluster.getFileSystem();
|
||||
}
|
||||
|
||||
private void truncateAndRestartDN(Path p, int dn, int newLength)
|
||||
throws IOException {
|
||||
try {
|
||||
boolean isReady = fs.truncate(p, newLength);
|
||||
assertFalse(isReady);
|
||||
} finally {
|
||||
cluster.restartDataNode(dn, false, true);
|
||||
cluster.waitActive();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user