Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
3.4.0, 3.3.6
Description
When I am working on HDFS-13183, I found that TestBalancerWithHANameNodes#testBalancerWithObserver failed occasionally, because the following code segment. Consider there are 1 ANN + 1 SBN + 2ONN, when invoke getBlocks with opening Observer Read feature, it could request any one of two ObserverNN based on my observation. So only verify the first ObserverNN and check times of invoke #getBlocks is not expected.
for (int i = 0; i < cluster.getNumNameNodes(); i++) { // First observer node is at idx 2, or 3 if 2 has been shut down // It should get both getBlocks calls, all other NNs should see 0 calls int expectedObserverIdx = withObserverFailure ? 3 : 2; int expectedCount = (i == expectedObserverIdx) ? 2 : 0; verify(namesystemSpies.get(i), times(expectedCount)) .getBlocks(any(), anyLong(), anyLong()); }
cc xkrogen,weichiu. I am not very familiar for Observer Read feature, would you like give some suggestions?
Attachments
Attachments
Issue Links
- is blocked by
-
HDFS-13183 Standby NameNode process getBlocks request to reduce Active load
- Resolved