HDFS-14054. TestLeaseRecovery2: testHardLeaseRecoveryAfterNameNodeRestart2 and testHardLeaseRecoveryWithRenameAfterNameNodeRestart are flaky. Contributed by Zsolt Venczel.
This commit is contained in:
parent
eeaf8edaa7
commit
993c2140cc
|
@ -562,17 +562,6 @@ public class TestLeaseRecovery2 {
|
||||||
|
|
||||||
// set the hard limit to be 1 second
|
// set the hard limit to be 1 second
|
||||||
cluster.setLeasePeriod(LONG_LEASE_PERIOD, SHORT_LEASE_PERIOD);
|
cluster.setLeasePeriod(LONG_LEASE_PERIOD, SHORT_LEASE_PERIOD);
|
||||||
|
|
||||||
// Make sure lease recovery begins.
|
|
||||||
final String path = fileStr;
|
|
||||||
GenericTestUtils.waitFor(new Supplier<Boolean>() {
|
|
||||||
@Override
|
|
||||||
public Boolean get() {
|
|
||||||
String holder =
|
|
||||||
NameNodeAdapter.getLeaseHolderForPath(cluster.getNameNode(), path);
|
|
||||||
return holder.startsWith(HdfsServerConstants.NAMENODE_LEASE_HOLDER);
|
|
||||||
}
|
|
||||||
}, (int)SHORT_LEASE_PERIOD, (int)SHORT_LEASE_PERIOD * 10);
|
|
||||||
|
|
||||||
// Normally, the in-progress edit log would be finalized by
|
// Normally, the in-progress edit log would be finalized by
|
||||||
// FSEditLog#endCurrentLogSegment. For testing purposes, we
|
// FSEditLog#endCurrentLogSegment. For testing purposes, we
|
||||||
|
@ -581,6 +570,18 @@ public class TestLeaseRecovery2 {
|
||||||
doNothing().when(spyLog).endCurrentLogSegment(Mockito.anyBoolean());
|
doNothing().when(spyLog).endCurrentLogSegment(Mockito.anyBoolean());
|
||||||
DFSTestUtil.setEditLogForTesting(cluster.getNamesystem(), spyLog);
|
DFSTestUtil.setEditLogForTesting(cluster.getNamesystem(), spyLog);
|
||||||
|
|
||||||
|
// Make sure lease recovery begins.
|
||||||
|
final String path = fileStr;
|
||||||
|
GenericTestUtils.waitFor(new Supplier<Boolean>() {
|
||||||
|
@Override
|
||||||
|
public Boolean get() {
|
||||||
|
String holder =
|
||||||
|
NameNodeAdapter.getLeaseHolderForPath(cluster.getNameNode(), path);
|
||||||
|
return holder!=null && holder
|
||||||
|
.startsWith(HdfsServerConstants.NAMENODE_LEASE_HOLDER);
|
||||||
|
}
|
||||||
|
}, (int)SHORT_LEASE_PERIOD, (int)SHORT_LEASE_PERIOD * 20);
|
||||||
|
|
||||||
cluster.restartNameNode(false);
|
cluster.restartNameNode(false);
|
||||||
|
|
||||||
checkLease(fileStr, size);
|
checkLease(fileStr, size);
|
||||||
|
|
Loading…
Reference in New Issue