From 297fa2fa46f817655ba85a1e2bb9a2017ee1e67e Mon Sep 17 00:00:00 2001 From: Umesh Agashe Date: Tue, 15 Aug 2017 14:00:04 -0700 Subject: [PATCH] HBASE-18493 [AMv2] Skipped re-assignment of regions on crashed server through AssignmentManager.checkIfShouldMoveSystemRegionAsync() as those regions are handled by ServerCrashProcedure --- .../apache/hadoop/hbase/master/assignment/AssignmentManager.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java index 54cb1cadc0e8413f2c73930a53d50a4bcf41bc1b..0b23f47eada6d74cd2af862094f5c3887fd50c1e 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java @@ -480,6 +480,15 @@ public class AssignmentManager implements ServerListener { synchronized (checkIfShouldMoveSystemRegionLock) { List plans = new ArrayList<>(); 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 regionsShouldMove = getCarryingSystemTables(server); if (!regionsShouldMove.isEmpty()) { for (HRegionInfo regionInfo : regionsShouldMove) { -- 2.10.1 (Apple Git-78)