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.