In the test case, we use "master.assignRegion(hri);" to assign regions to live RS or dead RS(will be aborted during the test). While master.assignRegion may not always successfully assign a region to the expected RS due to following error:
1) We firstly try to open a region in region server, let's say RS1
2) For some reason the region open takes more than a time out period
3) AM tries to reassign it and force a new plan due to the time out
4) the Region is re-assigned to a random RS
Then it cause the test case failure due to regions setup isn't in expected state.
I attached a log with extra added logging info and some stack traces(with (new Exception()).printStackTrace() so you can ignore java.lang.Exception). You can search region 36716be644bc9c78b3a96e0d4a43c183 to see master.assignRegion assigned a region to a randome RS. I saw the test failed once in 5 times in a loop.
|Summary||TestMaster#testMasterFailoverWithMockedRITOnDeadRS may fail due to regions may randomly be assigned to a RS||TestMasterFailover#testMasterFailoverWithMockedRITOnDeadRS may fail due to regions randomly assigned to a RS|
|Status||Open [ 1 ]||Patch Available [ 10002 ]|
|Fix Version/s||0.98.0 [ 12323143 ]|
|Status||Patch Available [ 10002 ]||Resolved [ 5 ]|
|Hadoop Flags||Reviewed [ 10343 ]|
|Fix Version/s||0.95.1 [ 12324288 ]|
|Resolution||Fixed [ 1 ]|
|Status||Resolved [ 5 ]||Closed [ 6 ]|