You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by GitBox <gi...@apache.org> on 2019/08/12 08:19:33 UTC
[GitHub] [hbase] HuiHang-Yu commented on issue #456: HBASE-22631 assign
failed may make gced parent region appear again
HuiHang-Yu commented on issue #456: HBASE-22631 assign failed may make gced parent region appear again
URL: https://github.com/apache/hbase/pull/456#issuecomment-520335860
@saintstack Thank you for your comment.
Yes i was cofused by how to write a UT for it . How can i simulate that the region can not be open for hdfs problem (maybe like Missing table descriptor for in my assignProcedure.txt
[assignProcedure.txt](https://github.com/apache/hbase/files/3491479/assignProcedure.txt)
) and can be opend in another regionserver .
The logic I modified is simple :
RegionNode.offline() makes region location to null and when the code execute the following line env.getAssignmentManager().undoRegionAsOpening(regionNode) it will do nothing . So the regionstates in assignmanager will not remove this region from rs regions according to serverMap . So the serverMap will retain the relation rs tempt20 (for example in my assignProcedure.txt) <- region forever even the region is open in regionserver tempt21 (for example in my assignProcedure.txt) .
![assign](https://user-images.githubusercontent.com/27949231/62852698-be3e5200-bd1c-11e9-8601-8deb51568dd2.png)
When the rs tempt20 crash it will create a subprocedure assignprocedure for this region which may be open in another rs according to serverMap . So the region info will be put into the meta table even if this region has been split and gced in another rs (delete from meta table) .
![splitAndGc](https://user-images.githubusercontent.com/27949231/62852716-d01ff500-bd1c-11e9-9a77-7414513aabbd.png)
![serverCrash](https://user-images.githubusercontent.com/27949231/62852736-e5951f00-bd1c-11e9-8289-8fe9b38e9f76.png)
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
With regards,
Apache Git Services