|
@@ -180,7 +180,7 @@ public class TestBPOfferService {
|
|
|
BPOfferService bpos = setupBPOSForNNs(mockNN1, mockNN2);
|
|
|
bpos.start();
|
|
|
try {
|
|
|
- waitForInitialization(bpos);
|
|
|
+ waitForBothActors(bpos);
|
|
|
|
|
|
// The DN should have register to both NNs.
|
|
|
Mockito.verify(mockNN1).registerDatanode(
|
|
@@ -205,6 +205,7 @@ public class TestBPOfferService {
|
|
|
|
|
|
} finally {
|
|
|
bpos.stop();
|
|
|
+ bpos.join();
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -235,6 +236,7 @@ public class TestBPOfferService {
|
|
|
|
|
|
} finally {
|
|
|
bpos.stop();
|
|
|
+ bpos.join();
|
|
|
}
|
|
|
|
|
|
// Should ignore the delete command from the standby
|
|
@@ -260,6 +262,7 @@ public class TestBPOfferService {
|
|
|
waitForOneToFail(bpos);
|
|
|
} finally {
|
|
|
bpos.stop();
|
|
|
+ bpos.join();
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -307,6 +310,7 @@ public class TestBPOfferService {
|
|
|
|
|
|
} finally {
|
|
|
bpos.stop();
|
|
|
+ bpos.join();
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -349,6 +353,7 @@ public class TestBPOfferService {
|
|
|
waitForBlockReport(mockNN1, mockNN2);
|
|
|
} finally {
|
|
|
bpos.stop();
|
|
|
+ bpos.join();
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -403,6 +408,27 @@ public class TestBPOfferService {
|
|
|
}
|
|
|
}, 100, 10000);
|
|
|
}
|
|
|
+
|
|
|
+ private void waitForBothActors(final BPOfferService bpos)
|
|
|
+ throws Exception {
|
|
|
+ GenericTestUtils.waitFor(new Supplier<Boolean>() {
|
|
|
+ @Override
|
|
|
+ public Boolean get() {
|
|
|
+ List<BPServiceActor> actors = bpos.getBPServiceActors();
|
|
|
+
|
|
|
+ return bpos.isAlive() && getRegisteredActors(actors) == 2;
|
|
|
+ }
|
|
|
+ private int getRegisteredActors(List<BPServiceActor> actors) {
|
|
|
+ int regActors = 0;
|
|
|
+ for (BPServiceActor actor : actors) {
|
|
|
+ if (actor.getBpRegistration() != null) {
|
|
|
+ regActors++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return regActors;
|
|
|
+ }
|
|
|
+ }, 100, 10000);
|
|
|
+ }
|
|
|
|
|
|
private void waitForBlockReport(final DatanodeProtocolClientSideTranslatorPB mockNN)
|
|
|
throws Exception {
|
|
@@ -540,6 +566,7 @@ public class TestBPOfferService {
|
|
|
difference < 5000);
|
|
|
} finally {
|
|
|
bpos.stop();
|
|
|
+ bpos.join();
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -579,6 +606,7 @@ public class TestBPOfferService {
|
|
|
+ " processing ", difference < 5000);
|
|
|
} finally {
|
|
|
bpos.stop();
|
|
|
+ bpos.join();
|
|
|
}
|
|
|
}
|
|
|
/**
|
|
@@ -624,6 +652,7 @@ public class TestBPOfferService {
|
|
|
+ "when errorReport threw IOException", secondCallTime != 0);
|
|
|
} finally {
|
|
|
bpos.stop();
|
|
|
+ bpos.join();
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -675,6 +704,7 @@ public class TestBPOfferService {
|
|
|
.reportBadBlocks(Mockito.any(LocatedBlock[].class));
|
|
|
} finally {
|
|
|
bpos.stop();
|
|
|
+ bpos.join();
|
|
|
}
|
|
|
}
|
|
|
}
|