HBASE-18493 [AMv2] Skipped re-assignment of regions on crashed server through AssignmentManager.checkIfShouldMoveSystemRegionAsync() as those regions are handled by ServerCrashProcedure
Signed-off-by: Michael Stack <stack@apache.org>
This commit is contained in:
parent
4c74a73d57
commit
acf9b87dca
|
@ -480,6 +480,15 @@ public class AssignmentManager implements ServerListener {
|
||||||
synchronized (checkIfShouldMoveSystemRegionLock) {
|
synchronized (checkIfShouldMoveSystemRegionLock) {
|
||||||
List<RegionPlan> plans = new ArrayList<>();
|
List<RegionPlan> plans = new ArrayList<>();
|
||||||
for (ServerName server : getExcludedServersForSystemTable()) {
|
for (ServerName server : getExcludedServersForSystemTable()) {
|
||||||
|
if (master.getServerManager().isServerDead(server)) {
|
||||||
|
// TODO: See HBASE-18494 and HBASE-18495. Though getExcludedServersForSystemTable()
|
||||||
|
// considers only online servers, the server could be queued for dead server
|
||||||
|
// processing. As region assignments for crashed server is handled by
|
||||||
|
// ServerCrashProcedure, do NOT handle them here. The goal is to handle this through
|
||||||
|
// regular flow of LoadBalancer as a favored node and not to have this special
|
||||||
|
// handling.
|
||||||
|
continue;
|
||||||
|
}
|
||||||
List<HRegionInfo> regionsShouldMove = getCarryingSystemTables(server);
|
List<HRegionInfo> regionsShouldMove = getCarryingSystemTables(server);
|
||||||
if (!regionsShouldMove.isEmpty()) {
|
if (!regionsShouldMove.isEmpty()) {
|
||||||
for (HRegionInfo regionInfo : regionsShouldMove) {
|
for (HRegionInfo regionInfo : regionsShouldMove) {
|
||||||
|
|
Loading…
Reference in New Issue