- Test creates 3 node cluster (master + 2 RS) and creates 3 tables with 1 region each.
- It then takes a snapshot of region assignments
- Shuts down the cluster and restarts with 4 nodes (2 RS on same ports, 1 RS on port where master was running previously and master on new port)
- Takes snapshot of region assignments
- Expected behavior is regions will be retained on RS with appropriate ports
Debugging done so far shows that, when cluster is restarted meta is loaded but meta has old entries (though the ports are same for RSs, start timestamps are different). AssignmentManager#processofflineServersWithOnlineRegions() finds that old RS with different timestamps are not online even though regions assigned to them are online; triggering submitting SCP for each those RSs. Subprocedure AssignProcedure of SCP has forceNewPlan set to true. Which triggers re-assignment of regions.