Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Invalid
-
None
-
None
Description
Here is the short story:
Scenario is a cluster of 3 servers. Server 1. crashed. It was carrying the .META. We split the logs. .META. is put on the head of the assignment queue. Server 2. happens to be in a state where it wants to report a split. The master fails the report because there is no .META. (It fails it ugly with a NPE). Server 3. checks in and falls into the assignment code (RegionManager#regionsAwaitingAssignment). In here we have this bit of code around line #412:
if (reassigningMetas && isMetaOrRoot && !isSingleServer) { return regionsToAssign; // dont assign anything to this server. }
Because we think this not a single server cluster – we think there are two 'live' nodes – we won't assign meta.