HDFS-10641. TestBlockManager#testBlockReportQueueing fails intermittently. (Contributed by Daryn Sharp)
This commit is contained in:
parent
9336a0495f
commit
4d4d95fdd5
@ -1013,6 +1013,7 @@ public void testBlockReportQueueing() throws Exception {
|
|||||||
|
|
||||||
final CyclicBarrier startBarrier = new CyclicBarrier(2);
|
final CyclicBarrier startBarrier = new CyclicBarrier(2);
|
||||||
final CountDownLatch endLatch = new CountDownLatch(3);
|
final CountDownLatch endLatch = new CountDownLatch(3);
|
||||||
|
final CountDownLatch doneLatch = new CountDownLatch(1);
|
||||||
|
|
||||||
// create a task intended to block while processing, thus causing
|
// create a task intended to block while processing, thus causing
|
||||||
// the queue to backup. simulates how a full BR is processed.
|
// the queue to backup. simulates how a full BR is processed.
|
||||||
@ -1020,7 +1021,7 @@ public void testBlockReportQueueing() throws Exception {
|
|||||||
new Callable<Void>(){
|
new Callable<Void>(){
|
||||||
@Override
|
@Override
|
||||||
public Void call() throws IOException {
|
public Void call() throws IOException {
|
||||||
return bm.runBlockOp(new Callable<Void>() {
|
bm.runBlockOp(new Callable<Void>() {
|
||||||
@Override
|
@Override
|
||||||
public Void call()
|
public Void call()
|
||||||
throws InterruptedException, BrokenBarrierException {
|
throws InterruptedException, BrokenBarrierException {
|
||||||
@ -1030,6 +1031,9 @@ public Void call()
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
// signal that runBlockOp returned
|
||||||
|
doneLatch.countDown();
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -1074,7 +1078,7 @@ public void run() {
|
|||||||
startBarrier.await(1, TimeUnit.SECONDS);
|
startBarrier.await(1, TimeUnit.SECONDS);
|
||||||
assertTrue(endLatch.await(1, TimeUnit.SECONDS));
|
assertTrue(endLatch.await(1, TimeUnit.SECONDS));
|
||||||
assertEquals(0, bm.getBlockOpQueueLength());
|
assertEquals(0, bm.getBlockOpQueueLength());
|
||||||
assertTrue(blockingOp.isDone());
|
assertTrue(doneLatch.await(1, TimeUnit.SECONDS));
|
||||||
} finally {
|
} finally {
|
||||||
cluster.shutdown();
|
cluster.shutdown();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user