HDFS-11252. TestFileTruncate#testTruncateWithDataNodesRestartImmediately can fail with BindException. Contributed by Yiqun Lin.
This commit is contained in:
parent
9262797e86
commit
0ddb8defad
@ -681,13 +681,7 @@ public void testTruncateWithDataNodesRestart() throws Exception {
|
|||||||
int toTruncateLength = 1;
|
int toTruncateLength = 1;
|
||||||
int newLength = startingFileSize - toTruncateLength;
|
int newLength = startingFileSize - toTruncateLength;
|
||||||
cluster.getDataNodes().get(dn).shutdown();
|
cluster.getDataNodes().get(dn).shutdown();
|
||||||
try {
|
truncateAndRestartDN(p, dn, newLength);
|
||||||
boolean isReady = fs.truncate(p, newLength);
|
|
||||||
assertFalse(isReady);
|
|
||||||
} finally {
|
|
||||||
cluster.restartDataNode(dn, true, true);
|
|
||||||
cluster.waitActive();
|
|
||||||
}
|
|
||||||
checkBlockRecovery(p);
|
checkBlockRecovery(p);
|
||||||
|
|
||||||
LocatedBlock newBlock = getLocatedBlocks(p).getLastLocatedBlock();
|
LocatedBlock newBlock = getLocatedBlocks(p).getLastLocatedBlock();
|
||||||
@ -740,13 +734,7 @@ public void testCopyOnTruncateWithDataNodesRestart() throws Exception {
|
|||||||
int toTruncateLength = 1;
|
int toTruncateLength = 1;
|
||||||
int newLength = startingFileSize - toTruncateLength;
|
int newLength = startingFileSize - toTruncateLength;
|
||||||
cluster.getDataNodes().get(dn).shutdown();
|
cluster.getDataNodes().get(dn).shutdown();
|
||||||
try {
|
truncateAndRestartDN(p, dn, newLength);
|
||||||
boolean isReady = fs.truncate(p, newLength);
|
|
||||||
assertFalse(isReady);
|
|
||||||
} finally {
|
|
||||||
cluster.restartDataNode(dn, true, true);
|
|
||||||
cluster.waitActive();
|
|
||||||
}
|
|
||||||
checkBlockRecovery(p);
|
checkBlockRecovery(p);
|
||||||
|
|
||||||
LocatedBlock newBlock = getLocatedBlocks(p).getLastLocatedBlock();
|
LocatedBlock newBlock = getLocatedBlocks(p).getLastLocatedBlock();
|
||||||
@ -800,8 +788,8 @@ public void testTruncateWithDataNodesRestartImmediately() throws Exception {
|
|||||||
boolean isReady = fs.truncate(p, newLength);
|
boolean isReady = fs.truncate(p, newLength);
|
||||||
assertFalse(isReady);
|
assertFalse(isReady);
|
||||||
|
|
||||||
cluster.restartDataNode(dn0, true, true);
|
cluster.restartDataNode(dn0, false, true);
|
||||||
cluster.restartDataNode(dn1, true, true);
|
cluster.restartDataNode(dn1, false, true);
|
||||||
cluster.waitActive();
|
cluster.waitActive();
|
||||||
checkBlockRecovery(p);
|
checkBlockRecovery(p);
|
||||||
|
|
||||||
@ -1242,4 +1230,15 @@ static void restartCluster(StartupOption o)
|
|||||||
.build();
|
.build();
|
||||||
fs = cluster.getFileSystem();
|
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…
Reference in New Issue
Block a user