Description
A region's state exists in multiple maps in the RegionManager: unassignedRegions, pendingRegions, regionsToClose, closingRegions, regionsToDelete, etc.
One of these race conditions was found in HBASE-534.
For HBase-0.1.x, we should just patch the holes we find.
The ultimate solution (which requires a lot of changes in HMaster) should be applied to HBase trunk.
Proposed solution:
Create a class that encapsulates a region's state and provide synchronized access to the class that validates state changes.
There should be a single structure that holds regions in these transitional states and it should be a synchronized collection of some kind.
Attachments
Attachments
Issue Links
- blocks
-
HBASE-546 Use Zookeeper in HBase
- Closed
-
HBASE-504 Allow HMsg's carry a payload: e.g. exception that happened over on the remote side.
- Closed
- is related to
-
HBASE-549 Don't CLOSE region if message is not from server that opened it or is opening it
- Closed
-
HBASE-1077 Master does not reassign regions closed while opening
- Closed
- relates to
-
HBASE-599 CME iterating return from ServerManager.getMarkedToClose
- Closed