hbase git commit: HBASE-19325 Pass a list of server name to postClearDeadServers

2017-11-27 Thread chia7712
Repository: hbase
Updated Branches:
  refs/heads/branch-1.4 c9246588e -> b4c2066e7


HBASE-19325 Pass a list of server name to postClearDeadServers

Signed-off-by: Chia-Ping Tsai 


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/b4c2066e
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/b4c2066e
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/b4c2066e

Branch: refs/heads/branch-1.4
Commit: b4c2066e73c055426c207ea585743fac0e1ebbf6
Parents: c924658
Author: Guangxu Cheng 
Authored: Thu Nov 23 11:12:30 2017 +0800
Committer: Chia-Ping Tsai 
Committed: Tue Nov 28 02:43:27 2017 +0800

--
 .../org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.java   | 4 ++--
 .../hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.java   | 4 ++--
 .../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.java | 4 ++--
 .../org/apache/hadoop/hbase/coprocessor/MasterObserver.java | 3 ++-
 .../org/apache/hadoop/hbase/master/MasterCoprocessorHost.java   | 5 +++--
 .../java/org/apache/hadoop/hbase/master/MasterRpcServices.java  | 4 +++-
 .../apache/hadoop/hbase/security/access/AccessController.java   | 4 ++--
 .../org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java | 4 ++--
 8 files changed, 18 insertions(+), 14 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/b4c2066e/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.java
--
diff --git 
a/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.java
 
b/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.java
index a6fbd05..65892fa 100644
--- 
a/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.java
+++ 
b/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.java
@@ -970,8 +970,8 @@ public class RSGroupAdminEndpoint extends 
RSGroupAdminService
   }
 
   @Override
-  public void 
postClearDeadServers(ObserverContext ctx)
-  throws IOException {
+  public void 
postClearDeadServers(ObserverContext ctx,
+  List servers, List notClearedServers) throws 
IOException {
 
   }
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/b4c2066e/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.java
index 6452226..de09f71 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.java
@@ -84,8 +84,8 @@ public class BaseMasterAndRegionObserver extends 
BaseRegionObserver
   }
 
   @Override
-  public void 
postClearDeadServers(ObserverContext ctx)
-throws IOException {
+  public void 
postClearDeadServers(ObserverContext ctx,
+  List servers, List notClearedServers) throws 
IOException {
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/hbase/blob/b4c2066e/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.java
index 842d917..7d962ab 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.java
@@ -95,8 +95,8 @@ public class BaseMasterObserver implements MasterObserver {
   }
 
   @Override
-  public void 
postClearDeadServers(ObserverContext ctx)
-throws IOException {
+  public void 
postClearDeadServers(ObserverContext ctx,
+  List servers, List notClearedServers) throws 
IOException {
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/hbase/blob/b4c2066e/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java
index bb0e63b..6e9179a 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java
+++ 

hbase git commit: HBASE-19325 Pass a list of server name to postClearDeadServers

2017-11-27 Thread chia7712
Repository: hbase
Updated Branches:
  refs/heads/branch-1 20d811121 -> de16690b7


HBASE-19325 Pass a list of server name to postClearDeadServers

Signed-off-by: Chia-Ping Tsai 


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/de16690b
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/de16690b
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/de16690b

Branch: refs/heads/branch-1
Commit: de16690b7a3b25ecff5c1ebfe5002698be4ff018
Parents: 20d8111
Author: Guangxu Cheng 
Authored: Thu Nov 23 11:12:30 2017 +0800
Committer: Chia-Ping Tsai 
Committed: Tue Nov 28 02:39:55 2017 +0800

--
 .../org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.java   | 4 ++--
 .../hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.java   | 4 ++--
 .../org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.java | 4 ++--
 .../org/apache/hadoop/hbase/coprocessor/MasterObserver.java | 3 ++-
 .../org/apache/hadoop/hbase/master/MasterCoprocessorHost.java   | 5 +++--
 .../java/org/apache/hadoop/hbase/master/MasterRpcServices.java  | 4 +++-
 .../apache/hadoop/hbase/security/access/AccessController.java   | 4 ++--
 .../org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java | 4 ++--
 8 files changed, 18 insertions(+), 14 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/de16690b/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.java
--
diff --git 
a/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.java
 
b/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.java
index a6fbd05..65892fa 100644
--- 
a/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.java
+++ 
b/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.java
@@ -970,8 +970,8 @@ public class RSGroupAdminEndpoint extends 
RSGroupAdminService
   }
 
   @Override
-  public void 
postClearDeadServers(ObserverContext ctx)
-  throws IOException {
+  public void 
postClearDeadServers(ObserverContext ctx,
+  List servers, List notClearedServers) throws 
IOException {
 
   }
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/de16690b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.java
index 6452226..de09f71 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.java
@@ -84,8 +84,8 @@ public class BaseMasterAndRegionObserver extends 
BaseRegionObserver
   }
 
   @Override
-  public void 
postClearDeadServers(ObserverContext ctx)
-throws IOException {
+  public void 
postClearDeadServers(ObserverContext ctx,
+  List servers, List notClearedServers) throws 
IOException {
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/hbase/blob/de16690b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.java
index 842d917..7d962ab 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.java
@@ -95,8 +95,8 @@ public class BaseMasterObserver implements MasterObserver {
   }
 
   @Override
-  public void 
postClearDeadServers(ObserverContext ctx)
-throws IOException {
+  public void 
postClearDeadServers(ObserverContext ctx,
+  List servers, List notClearedServers) throws 
IOException {
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/hbase/blob/de16690b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java
index bb0e63b..6e9179a 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java
+++ 

hbase git commit: HBASE-19325 Pass a list of server name to postClearDeadServers

2017-11-27 Thread chia7712
Repository: hbase
Updated Branches:
  refs/heads/master f521000d7 -> 5a0881a98


HBASE-19325 Pass a list of server name to postClearDeadServers

Signed-off-by: Chia-Ping Tsai 


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/5a0881a9
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/5a0881a9
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/5a0881a9

Branch: refs/heads/master
Commit: 5a0881a98b3575d900d483222e2fdfab15159656
Parents: f521000
Author: Guangxu Cheng 
Authored: Wed Nov 22 17:40:08 2017 +0800
Committer: Chia-Ping Tsai 
Committed: Tue Nov 28 02:47:06 2017 +0800

--
 .../org/apache/hadoop/hbase/coprocessor/MasterObserver.java | 3 ++-
 .../org/apache/hadoop/hbase/master/MasterCoprocessorHost.java   | 5 +++--
 .../java/org/apache/hadoop/hbase/master/MasterRpcServices.java  | 4 +++-
 3 files changed, 8 insertions(+), 4 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/5a0881a9/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java
index c90ffe5..398e56b 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java
@@ -1263,7 +1263,8 @@ public interface MasterObserver {
   /**
* Called after clear dead region servers.
*/
-  default void 
postClearDeadServers(ObserverContext ctx)
+  default void 
postClearDeadServers(ObserverContext ctx,
+  List servers, List notClearedServers)
   throws IOException {}
 
   /**

http://git-wip-us.apache.org/repos/asf/hbase/blob/5a0881a9/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java
index ddc6c3d..4337347 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java
@@ -1596,11 +1596,12 @@ public class MasterCoprocessorHost
 });
   }
 
-  public void postClearDeadServers() throws IOException {
+  public void postClearDeadServers(List servers,
+  List notClearedServers) throws IOException {
 execOperation(coprocEnvironments.isEmpty() ? null : new 
MasterObserverOperation() {
   @Override
   public void call(MasterObserver observer) throws IOException {
-observer.postClearDeadServers(this);
+observer.postClearDeadServers(this, servers, notClearedServers);
   }
 });
   }

http://git-wip-us.apache.org/repos/asf/hbase/blob/5a0881a9/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java
index 2fd60af..1a8fd06 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java
@@ -2163,7 +2163,9 @@ public class MasterRpcServices extends RSRpcServices
   }
 
   if (master.cpHost != null) {
-master.cpHost.postClearDeadServers();
+master.cpHost.postClearDeadServers(
+ProtobufUtil.toServerNameList(request.getServerNameList()),
+ProtobufUtil.toServerNameList(response.getServerNameList()));
   }
 } catch (IOException io) {
   throw new ServiceException(io);



hbase git commit: HBASE-19325 Pass a list of server name to postClearDeadServers

2017-11-27 Thread chia7712
Repository: hbase
Updated Branches:
  refs/heads/branch-2 0406d0653 -> 44bd94721


HBASE-19325 Pass a list of server name to postClearDeadServers

Signed-off-by: Chia-Ping Tsai 


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/44bd9472
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/44bd9472
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/44bd9472

Branch: refs/heads/branch-2
Commit: 44bd94721c5601046871eb864239a51486a21297
Parents: 0406d06
Author: Guangxu Cheng 
Authored: Wed Nov 22 17:40:08 2017 +0800
Committer: Chia-Ping Tsai 
Committed: Tue Nov 28 02:53:19 2017 +0800

--
 .../org/apache/hadoop/hbase/coprocessor/MasterObserver.java | 3 ++-
 .../org/apache/hadoop/hbase/master/MasterCoprocessorHost.java   | 5 +++--
 .../java/org/apache/hadoop/hbase/master/MasterRpcServices.java  | 4 +++-
 3 files changed, 8 insertions(+), 4 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/44bd9472/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java
index c90ffe5..398e56b 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java
@@ -1263,7 +1263,8 @@ public interface MasterObserver {
   /**
* Called after clear dead region servers.
*/
-  default void 
postClearDeadServers(ObserverContext ctx)
+  default void 
postClearDeadServers(ObserverContext ctx,
+  List servers, List notClearedServers)
   throws IOException {}
 
   /**

http://git-wip-us.apache.org/repos/asf/hbase/blob/44bd9472/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java
index ddc6c3d..4337347 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java
@@ -1596,11 +1596,12 @@ public class MasterCoprocessorHost
 });
   }
 
-  public void postClearDeadServers() throws IOException {
+  public void postClearDeadServers(List servers,
+  List notClearedServers) throws IOException {
 execOperation(coprocEnvironments.isEmpty() ? null : new 
MasterObserverOperation() {
   @Override
   public void call(MasterObserver observer) throws IOException {
-observer.postClearDeadServers(this);
+observer.postClearDeadServers(this, servers, notClearedServers);
   }
 });
   }

http://git-wip-us.apache.org/repos/asf/hbase/blob/44bd9472/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java
index 2fd60af..1a8fd06 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java
@@ -2163,7 +2163,9 @@ public class MasterRpcServices extends RSRpcServices
   }
 
   if (master.cpHost != null) {
-master.cpHost.postClearDeadServers();
+master.cpHost.postClearDeadServers(
+ProtobufUtil.toServerNameList(request.getServerNameList()),
+ProtobufUtil.toServerNameList(response.getServerNameList()));
   }
 } catch (IOException io) {
   throw new ServiceException(io);



hbase git commit: HBASE-19319 Fix bug in synchronizing over ProcedureEvent

2017-11-27 Thread appy
Repository: hbase
Updated Branches:
  refs/heads/branch-2 44bd94721 -> 96e63ac7b


HBASE-19319 Fix bug in synchronizing over ProcedureEvent

Also moves event related functions (wake/wait/suspend) from ProcedureScheduler 
to ProcedureEvent class


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/96e63ac7
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/96e63ac7
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/96e63ac7

Branch: refs/heads/branch-2
Commit: 96e63ac7b8c91bb505b7a0e276df7a4cd1246542
Parents: 44bd947
Author: Apekshit Sharma 
Authored: Mon Nov 20 19:16:23 2017 -0800
Committer: Apekshit Sharma 
Committed: Mon Nov 27 12:06:07 2017 -0800

--
 .../procedure2/AbstractProcedureScheduler.java  | 89 
 .../hadoop/hbase/procedure2/ProcedureEvent.java | 79 +++--
 .../hbase/procedure2/ProcedureScheduler.java| 40 ++---
 .../hbase/procedure2/TestProcedureEvents.java   | 30 +--
 .../TestProcedureSchedulerConcurrency.java  |  8 +-
 .../master/assignment/AssignmentManager.java| 21 +++--
 .../assignment/RegionTransitionProcedure.java   | 10 +--
 .../hbase/master/locking/LockProcedure.java |  8 +-
 .../master/procedure/MasterProcedureEnv.java| 10 +--
 .../procedure/TestMasterProcedureEvents.java|  2 +-
 .../procedure/TestMasterProcedureScheduler.java |  4 +-
 .../TestRegionMergeTransactionOnCluster.java| 17 ++--
 12 files changed, 177 insertions(+), 141 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/96e63ac7/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.java
--
diff --git 
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.java
 
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.java
index 3bff8b8..3e47451 100644
--- 
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.java
+++ 
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.java
@@ -18,6 +18,7 @@
 
 package org.apache.hadoop.hbase.procedure2;
 
+import java.util.Iterator;
 import java.util.concurrent.locks.Condition;
 import java.util.concurrent.locks.ReentrantLock;
 import java.util.concurrent.TimeUnit;
@@ -79,10 +80,31 @@ public abstract class AbstractProcedureScheduler implements 
ProcedureScheduler {
*/
   protected abstract void enqueue(Procedure procedure, boolean addFront);
 
+  @Override
   public void addFront(final Procedure procedure) {
 push(procedure, true, true);
   }
 
+  @Override
+  public void addFront(Iterator procedureIterator) {
+schedLock();
+try {
+  int count = 0;
+  while (procedureIterator.hasNext()) {
+Procedure procedure = procedureIterator.next();
+if (LOG.isTraceEnabled()) {
+  LOG.trace("Wake " + procedure);
+}
+push(procedure, /* addFront= */ true, /* notify= */false);
+count++;
+  }
+  wakePollIfNeeded(count);
+} finally {
+  schedUnlock();
+}
+  }
+
+  @Override
   public void addBack(final Procedure procedure) {
 push(procedure, false, true);
   }
@@ -206,61 +228,22 @@ public abstract class AbstractProcedureScheduler 
implements ProcedureScheduler {
   // ==
   //  Procedure Events
   // ==
-  @Override
-  public boolean waitEvent(final ProcedureEvent event, final Procedure 
procedure) {
-synchronized (event) {
-  if (event.isReady()) {
-return false;
-  }
-  waitProcedure(event.getSuspendedProcedures(), procedure);
-  return true;
-}
-  }
-
-  @Override
-  public void suspendEvent(final ProcedureEvent event) {
-final boolean traceEnabled = LOG.isTraceEnabled();
-synchronized (event) {
-  event.setReady(false);
-  if (traceEnabled) {
-LOG.trace("Suspend " + event);
-  }
-}
-  }
-
-  @Override
-  public void wakeEvent(final ProcedureEvent event) {
-wakeEvents(1, event);
-  }
 
-  @Override
-  public void wakeEvents(final int count, final ProcedureEvent... events) {
-final boolean traceEnabled = LOG.isTraceEnabled();
+  /**
+   * Wake up all of the given events.
+   * Note that we first take scheduler lock and then wakeInternal() 
synchronizes on the event.
+   * Access should remain package-private. Use ProcedureEvent class to 
wake/suspend events.
+   * @param events the list of events to wake
+   */
+  void wakeEvents(ProcedureEvent[] events) {
 schedLock();
 try {
-  int waitingCount = 0;

hbase git commit: HBASE-19300 TestMultithreadedTableMapper fails in branch-1.4

2017-11-27 Thread tedyu
Repository: hbase
Updated Branches:
  refs/heads/branch-1 de16690b7 -> f7f425e53


HBASE-19300 TestMultithreadedTableMapper fails in branch-1.4


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/f7f425e5
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/f7f425e5
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/f7f425e5

Branch: refs/heads/branch-1
Commit: f7f425e53ed4b6feb63b88aa6f02f2836607e10c
Parents: de16690
Author: tedyu 
Authored: Mon Nov 27 11:41:46 2017 -0800
Committer: tedyu 
Committed: Mon Nov 27 11:41:46 2017 -0800

--
 .../apache/hadoop/hbase/mapreduce/MultithreadedTableMapper.java  | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/f7f425e5/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/MultithreadedTableMapper.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/MultithreadedTableMapper.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/MultithreadedTableMapper.java
index ca5ef01..0b377ab 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/MultithreadedTableMapper.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/MultithreadedTableMapper.java
@@ -166,7 +166,7 @@ public class MultithreadedTableMapper extends 
TableMapper {
 
 @Override
 public boolean nextKeyValue() throws IOException, InterruptedException {
-  synchronized (this) {
+  synchronized (outer) {
 if (!outer.nextKeyValue()) {
   return false;
 }
@@ -198,7 +198,7 @@ public class MultithreadedTableMapper extends 
TableMapper {
 @Override
 public void write(K2 key, V2 value) throws IOException,
 InterruptedException {
-  synchronized (this) {
+  synchronized (outer) {
 outer.write(key, value);
   }
 }



hbase git commit: HBASE-19300 TestMultithreadedTableMapper fails in branch-1.4

2017-11-27 Thread tedyu
Repository: hbase
Updated Branches:
  refs/heads/branch-1.4 b4c2066e7 -> 36fae801a


HBASE-19300 TestMultithreadedTableMapper fails in branch-1.4


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/36fae801
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/36fae801
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/36fae801

Branch: refs/heads/branch-1.4
Commit: 36fae801a88556fa95f867ffb0e12129ede18f61
Parents: b4c2066
Author: tedyu 
Authored: Mon Nov 27 11:27:05 2017 -0800
Committer: tedyu 
Committed: Mon Nov 27 11:27:05 2017 -0800

--
 .../apache/hadoop/hbase/mapreduce/MultithreadedTableMapper.java  | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/36fae801/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/MultithreadedTableMapper.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/MultithreadedTableMapper.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/MultithreadedTableMapper.java
index ca5ef01..0b377ab 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/MultithreadedTableMapper.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/MultithreadedTableMapper.java
@@ -166,7 +166,7 @@ public class MultithreadedTableMapper extends 
TableMapper {
 
 @Override
 public boolean nextKeyValue() throws IOException, InterruptedException {
-  synchronized (this) {
+  synchronized (outer) {
 if (!outer.nextKeyValue()) {
   return false;
 }
@@ -198,7 +198,7 @@ public class MultithreadedTableMapper extends 
TableMapper {
 @Override
 public void write(K2 key, V2 value) throws IOException,
 InterruptedException {
-  synchronized (this) {
+  synchronized (outer) {
 outer.write(key, value);
   }
 }



hbase git commit: HBASE-18601 Update Htrace to 4.2 (addendum)

2017-11-27 Thread chia7712
Repository: hbase
Updated Branches:
  refs/heads/branch-2 e42d20f8d -> 95e4f059a


HBASE-18601 Update Htrace to 4.2 (addendum)

- TraceTree fix

Signed-off-by: Chia-Ping Tsai 


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/95e4f059
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/95e4f059
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/95e4f059

Branch: refs/heads/branch-2
Commit: 95e4f059a3b5937d47deda49f40be87af5b12c53
Parents: e42d20f
Author: Balazs Meszaros 
Authored: Mon Nov 27 16:53:25 2017 +0100
Committer: Chia-Ping Tsai 
Committed: Tue Nov 28 06:59:30 2017 +0800

--
 .../hadoop/hbase/trace/TestHTraceHooks.java |  2 -
 .../apache/hadoop/hbase/trace/TraceTree.java| 52 +---
 2 files changed, 33 insertions(+), 21 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/95e4f059/hbase-server/src/test/java/org/apache/hadoop/hbase/trace/TestHTraceHooks.java
--
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/trace/TestHTraceHooks.java 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/trace/TestHTraceHooks.java
index 631d98b..0b8c039 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/trace/TestHTraceHooks.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/trace/TestHTraceHooks.java
@@ -31,7 +31,6 @@ import org.apache.hadoop.hbase.testclassification.MiscTests;
 import org.apache.htrace.core.POJOSpanReceiver;
 import org.apache.htrace.core.Sampler;
 import org.apache.htrace.core.Span;
-import org.apache.htrace.core.SpanId;
 import org.apache.htrace.core.TraceScope;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
@@ -50,7 +49,6 @@ public class TestHTraceHooks {
   private static final byte[] FAMILY_BYTES = "family".getBytes();
   private static final HBaseTestingUtility TEST_UTIL = new 
HBaseTestingUtility();
   private static POJOSpanReceiver rcvr;
-  private static SpanId ROOT_SPAN_ID = new SpanId(0, 0);
 
   @Rule
   public TestName name = new TestName();

http://git-wip-us.apache.org/repos/asf/hbase/blob/95e4f059/hbase-server/src/test/java/org/apache/hadoop/hbase/trace/TraceTree.java
--
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/trace/TraceTree.java 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/trace/TraceTree.java
index bba4ee5..eb209d0 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/trace/TraceTree.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/trace/TraceTree.java
@@ -22,12 +22,12 @@ import org.apache.htrace.core.SpanId;
 
 import java.util.Collection;
 import java.util.Collections;
+import java.util.Comparator;
 import java.util.HashMap;
 import java.util.Iterator;
-import java.util.LinkedHashSet;
 import java.util.LinkedList;
 import java.util.List;
-import java.util.Set;
+import java.util.TreeSet;
 
 /**
  * Used to create the graph formed by spans.
@@ -35,18 +35,23 @@ import java.util.Set;
 public class TraceTree {
 
   public static class SpansByParent {
-private final Set set;
+private static Comparator COMPARATOR =
+new Comparator() {
+  @Override
+  public int compare(Span a, Span b) {
+return a.getSpanId().compareTo(b.getSpanId());
+  }
+};
+
+private final TreeSet treeSet;
 
 private final HashMap parentToSpans;
 
 SpansByParent(Collection spans) {
-  set = new LinkedHashSet();
+  TreeSet treeSet = new TreeSet(COMPARATOR);
   parentToSpans = new HashMap();
-  if(spans == null) {
-return;
-  }
   for (Span span : spans) {
-set.add(span);
+treeSet.add(span);
 for (SpanId parent : span.getParents()) {
   LinkedList list = parentToSpans.get(parent);
   if (list == null) {
@@ -56,15 +61,15 @@ public class TraceTree {
   list.add(span);
 }
 if (span.getParents().length == 0) {
-  LinkedList list = parentToSpans.get(Long.valueOf(0L));
+  LinkedList list = parentToSpans.get(SpanId.INVALID);
   if (list == null) {
 list = new LinkedList();
-parentToSpans.put(new SpanId(Long.MIN_VALUE, Long.MIN_VALUE), 
list);
+parentToSpans.put(SpanId.INVALID, list);
   }
   list.add(span);
 }
   }
-
+  this.treeSet = treeSet;
 }
 
 public List find(SpanId parentId) {
@@ -76,25 +81,31 @@ public class TraceTree {
 }
 
 public Iterator iterator() {
-  return Collections.unmodifiableSet(set).iterator();
+  return 

[2/2] hbase git commit: HBASE-19318 Use the PB service interface as the judge of whether some security feature exists

2017-11-27 Thread elserj
HBASE-19318 Use the PB service interface as the judge of whether some security 
feature exists

Hard-coded checks on HBase implementations (e.g. AccessController and
VisibilityController) preclude custom implementations of authorization
and visibility labels (Apache Ranger).

Signed-off-by: Ted Yu 


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/e42d20f8
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/e42d20f8
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/e42d20f8

Branch: refs/heads/branch-2
Commit: e42d20f8ddd4c27d6138e71ec78d0fbfe59790a4
Parents: 96e63ac
Author: Josh Elser 
Authored: Wed Nov 22 11:14:40 2017 -0500
Committer: Josh Elser 
Committed: Mon Nov 27 17:49:41 2017 -0500

--
 .../hadoop/hbase/master/MasterRpcServices.java  |  50 +-
 .../master/TestMasterCoprocessorServices.java   | 170 +++
 2 files changed, 214 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/e42d20f8/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java
index 1a8fd06..ce85b66 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java
@@ -47,6 +47,7 @@ import org.apache.hadoop.hbase.client.TableDescriptor;
 import org.apache.hadoop.hbase.client.TableState;
 import org.apache.hadoop.hbase.client.VersionInfoUtil;
 import org.apache.hadoop.hbase.client.replication.ReplicationPeerConfigUtil;
+import org.apache.hadoop.hbase.coprocessor.MasterCoprocessor;
 import org.apache.hadoop.hbase.errorhandling.ForeignException;
 import org.apache.hadoop.hbase.exceptions.UnknownProtocolException;
 import org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils;
@@ -64,6 +65,8 @@ import org.apache.hadoop.hbase.procedure2.LockType;
 import org.apache.hadoop.hbase.procedure2.LockedResource;
 import org.apache.hadoop.hbase.procedure2.Procedure;
 import org.apache.hadoop.hbase.procedure2.ProcedureUtil;
+import 
org.apache.hadoop.hbase.protobuf.generated.AccessControlProtos.AccessControlService;
+import 
org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.VisibilityLabelsService;
 import org.apache.hadoop.hbase.quotas.MasterQuotaManager;
 import org.apache.hadoop.hbase.quotas.QuotaObserverChore;
 import org.apache.hadoop.hbase.quotas.QuotaUtil;
@@ -1768,9 +1771,9 @@ public class MasterRpcServices extends RSRpcServices
   } else {
 
capabilities.add(SecurityCapabilitiesResponse.Capability.SIMPLE_AUTHENTICATION);
   }
-  // The AccessController can provide AUTHORIZATION and CELL_AUTHORIZATION
-  if (master.cpHost != null &&
-master.cpHost.findCoprocessor(AccessController.class.getName()) != 
null) {
+  // A coprocessor that implements AccessControlService can provide 
AUTHORIZATION and
+  // CELL_AUTHORIZATION
+  if (master.cpHost != null && 
hasAccessControlServiceCoprocessor(master.cpHost)) {
 if 
(AccessController.isAuthorizationSupported(master.getConfiguration())) {
   
capabilities.add(SecurityCapabilitiesResponse.Capability.AUTHORIZATION);
 }
@@ -1778,9 +1781,8 @@ public class MasterRpcServices extends RSRpcServices
   
capabilities.add(SecurityCapabilitiesResponse.Capability.CELL_AUTHORIZATION);
 }
   }
-  // The VisibilityController can provide CELL_VISIBILITY
-  if (master.cpHost != null &&
-
master.cpHost.findCoprocessor(VisibilityController.class.getName()) != null) {
+  // A coprocessor that implements VisibilityLabelsService can provide 
CELL_VISIBILITY.
+  if (master.cpHost != null && 
hasVisibilityLabelsServiceCoprocessor(master.cpHost)) {
 if 
(VisibilityController.isCellAuthorizationSupported(master.getConfiguration())) {
   
capabilities.add(SecurityCapabilitiesResponse.Capability.CELL_VISIBILITY);
 }
@@ -1792,6 +1794,42 @@ public class MasterRpcServices extends RSRpcServices
 return response.build();
   }
 
+  /**
+   * Determines if there is a MasterCoprocessor deployed which implements
+   * {@link 
org.apache.hadoop.hbase.protobuf.generated.AccessControlProtos.AccessControlService.Interface}.
+   */
+  boolean hasAccessControlServiceCoprocessor(MasterCoprocessorHost cpHost) {
+return checkCoprocessorWithService(
+cpHost.findCoprocessors(MasterCoprocessor.class), 
AccessControlService.Interface.class);
+  }
+
+  /**
+   * Determines if there 

[1/2] hbase git commit: HBASE-19318 Use the PB service interface as the judge of whether some security feature exists

2017-11-27 Thread elserj
Repository: hbase
Updated Branches:
  refs/heads/branch-2 96e63ac7b -> e42d20f8d
  refs/heads/master f88671661 -> 5c1acf479


HBASE-19318 Use the PB service interface as the judge of whether some security 
feature exists

Hard-coded checks on HBase implementations (e.g. AccessController and
VisibilityController) preclude custom implementations of authorization
and visibility labels (Apache Ranger).

Signed-off-by: Ted Yu 


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/5c1acf47
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/5c1acf47
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/5c1acf47

Branch: refs/heads/master
Commit: 5c1acf4792a7f7b6a5ace11c2fa4d172ede46b4e
Parents: f886716
Author: Josh Elser 
Authored: Wed Nov 22 11:14:40 2017 -0500
Committer: Josh Elser 
Committed: Mon Nov 27 17:49:23 2017 -0500

--
 .../hadoop/hbase/master/MasterRpcServices.java  |  50 +-
 .../master/TestMasterCoprocessorServices.java   | 170 +++
 2 files changed, 214 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/5c1acf47/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java
index 1a8fd06..ce85b66 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java
@@ -47,6 +47,7 @@ import org.apache.hadoop.hbase.client.TableDescriptor;
 import org.apache.hadoop.hbase.client.TableState;
 import org.apache.hadoop.hbase.client.VersionInfoUtil;
 import org.apache.hadoop.hbase.client.replication.ReplicationPeerConfigUtil;
+import org.apache.hadoop.hbase.coprocessor.MasterCoprocessor;
 import org.apache.hadoop.hbase.errorhandling.ForeignException;
 import org.apache.hadoop.hbase.exceptions.UnknownProtocolException;
 import org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils;
@@ -64,6 +65,8 @@ import org.apache.hadoop.hbase.procedure2.LockType;
 import org.apache.hadoop.hbase.procedure2.LockedResource;
 import org.apache.hadoop.hbase.procedure2.Procedure;
 import org.apache.hadoop.hbase.procedure2.ProcedureUtil;
+import 
org.apache.hadoop.hbase.protobuf.generated.AccessControlProtos.AccessControlService;
+import 
org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.VisibilityLabelsService;
 import org.apache.hadoop.hbase.quotas.MasterQuotaManager;
 import org.apache.hadoop.hbase.quotas.QuotaObserverChore;
 import org.apache.hadoop.hbase.quotas.QuotaUtil;
@@ -1768,9 +1771,9 @@ public class MasterRpcServices extends RSRpcServices
   } else {
 
capabilities.add(SecurityCapabilitiesResponse.Capability.SIMPLE_AUTHENTICATION);
   }
-  // The AccessController can provide AUTHORIZATION and CELL_AUTHORIZATION
-  if (master.cpHost != null &&
-master.cpHost.findCoprocessor(AccessController.class.getName()) != 
null) {
+  // A coprocessor that implements AccessControlService can provide 
AUTHORIZATION and
+  // CELL_AUTHORIZATION
+  if (master.cpHost != null && 
hasAccessControlServiceCoprocessor(master.cpHost)) {
 if 
(AccessController.isAuthorizationSupported(master.getConfiguration())) {
   
capabilities.add(SecurityCapabilitiesResponse.Capability.AUTHORIZATION);
 }
@@ -1778,9 +1781,8 @@ public class MasterRpcServices extends RSRpcServices
   
capabilities.add(SecurityCapabilitiesResponse.Capability.CELL_AUTHORIZATION);
 }
   }
-  // The VisibilityController can provide CELL_VISIBILITY
-  if (master.cpHost != null &&
-
master.cpHost.findCoprocessor(VisibilityController.class.getName()) != null) {
+  // A coprocessor that implements VisibilityLabelsService can provide 
CELL_VISIBILITY.
+  if (master.cpHost != null && 
hasVisibilityLabelsServiceCoprocessor(master.cpHost)) {
 if 
(VisibilityController.isCellAuthorizationSupported(master.getConfiguration())) {
   
capabilities.add(SecurityCapabilitiesResponse.Capability.CELL_VISIBILITY);
 }
@@ -1792,6 +1794,42 @@ public class MasterRpcServices extends RSRpcServices
 return response.build();
   }
 
+  /**
+   * Determines if there is a MasterCoprocessor deployed which implements
+   * {@link 
org.apache.hadoop.hbase.protobuf.generated.AccessControlProtos.AccessControlService.Interface}.
+   */
+  boolean hasAccessControlServiceCoprocessor(MasterCoprocessorHost cpHost) {
+return checkCoprocessorWithService(
+

hbase git commit: HBASE-18601 Update Htrace to 4.2 (addendum)

2017-11-27 Thread chia7712
Repository: hbase
Updated Branches:
  refs/heads/master 5c1acf479 -> 7c1c370f2


HBASE-18601 Update Htrace to 4.2 (addendum)

- TraceTree fix

Signed-off-by: Chia-Ping Tsai 


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/7c1c370f
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/7c1c370f
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/7c1c370f

Branch: refs/heads/master
Commit: 7c1c370f2fcde83b702011046a8b6fb0b01a263e
Parents: 5c1acf4
Author: Balazs Meszaros 
Authored: Mon Nov 27 16:53:25 2017 +0100
Committer: Chia-Ping Tsai 
Committed: Tue Nov 28 06:59:57 2017 +0800

--
 .../hadoop/hbase/trace/TestHTraceHooks.java |  2 -
 .../apache/hadoop/hbase/trace/TraceTree.java| 52 +---
 2 files changed, 33 insertions(+), 21 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/7c1c370f/hbase-server/src/test/java/org/apache/hadoop/hbase/trace/TestHTraceHooks.java
--
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/trace/TestHTraceHooks.java 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/trace/TestHTraceHooks.java
index 631d98b..0b8c039 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/trace/TestHTraceHooks.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/trace/TestHTraceHooks.java
@@ -31,7 +31,6 @@ import org.apache.hadoop.hbase.testclassification.MiscTests;
 import org.apache.htrace.core.POJOSpanReceiver;
 import org.apache.htrace.core.Sampler;
 import org.apache.htrace.core.Span;
-import org.apache.htrace.core.SpanId;
 import org.apache.htrace.core.TraceScope;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
@@ -50,7 +49,6 @@ public class TestHTraceHooks {
   private static final byte[] FAMILY_BYTES = "family".getBytes();
   private static final HBaseTestingUtility TEST_UTIL = new 
HBaseTestingUtility();
   private static POJOSpanReceiver rcvr;
-  private static SpanId ROOT_SPAN_ID = new SpanId(0, 0);
 
   @Rule
   public TestName name = new TestName();

http://git-wip-us.apache.org/repos/asf/hbase/blob/7c1c370f/hbase-server/src/test/java/org/apache/hadoop/hbase/trace/TraceTree.java
--
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/trace/TraceTree.java 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/trace/TraceTree.java
index bba4ee5..eb209d0 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/trace/TraceTree.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/trace/TraceTree.java
@@ -22,12 +22,12 @@ import org.apache.htrace.core.SpanId;
 
 import java.util.Collection;
 import java.util.Collections;
+import java.util.Comparator;
 import java.util.HashMap;
 import java.util.Iterator;
-import java.util.LinkedHashSet;
 import java.util.LinkedList;
 import java.util.List;
-import java.util.Set;
+import java.util.TreeSet;
 
 /**
  * Used to create the graph formed by spans.
@@ -35,18 +35,23 @@ import java.util.Set;
 public class TraceTree {
 
   public static class SpansByParent {
-private final Set set;
+private static Comparator COMPARATOR =
+new Comparator() {
+  @Override
+  public int compare(Span a, Span b) {
+return a.getSpanId().compareTo(b.getSpanId());
+  }
+};
+
+private final TreeSet treeSet;
 
 private final HashMap parentToSpans;
 
 SpansByParent(Collection spans) {
-  set = new LinkedHashSet();
+  TreeSet treeSet = new TreeSet(COMPARATOR);
   parentToSpans = new HashMap();
-  if(spans == null) {
-return;
-  }
   for (Span span : spans) {
-set.add(span);
+treeSet.add(span);
 for (SpanId parent : span.getParents()) {
   LinkedList list = parentToSpans.get(parent);
   if (list == null) {
@@ -56,15 +61,15 @@ public class TraceTree {
   list.add(span);
 }
 if (span.getParents().length == 0) {
-  LinkedList list = parentToSpans.get(Long.valueOf(0L));
+  LinkedList list = parentToSpans.get(SpanId.INVALID);
   if (list == null) {
 list = new LinkedList();
-parentToSpans.put(new SpanId(Long.MIN_VALUE, Long.MIN_VALUE), 
list);
+parentToSpans.put(SpanId.INVALID, list);
   }
   list.add(span);
 }
   }
-
+  this.treeSet = treeSet;
 }
 
 public List find(SpanId parentId) {
@@ -76,25 +81,31 @@ public class TraceTree {
 }
 
 public Iterator iterator() {
-  return Collections.unmodifiableSet(set).iterator();
+  return 

hbase git commit: HBASE-19319 Fix bug in synchronizing over ProcedureEvent

2017-11-27 Thread appy
Repository: hbase
Updated Branches:
  refs/heads/master 5a0881a98 -> f88671661


HBASE-19319 Fix bug in synchronizing over ProcedureEvent

Also moves event related functions (wake/wait/suspend) from ProcedureScheduler 
to ProcedureEvent class


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/f8867166
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/f8867166
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/f8867166

Branch: refs/heads/master
Commit: f8867166178e76598393437baac3849f4943ff16
Parents: 5a0881a
Author: Apekshit Sharma 
Authored: Mon Nov 20 19:16:23 2017 -0800
Committer: Apekshit Sharma 
Committed: Mon Nov 27 11:51:17 2017 -0800

--
 .../procedure2/AbstractProcedureScheduler.java  | 89 
 .../hadoop/hbase/procedure2/ProcedureEvent.java | 79 +++--
 .../hbase/procedure2/ProcedureScheduler.java| 40 ++---
 .../hbase/procedure2/TestProcedureEvents.java   | 30 +--
 .../TestProcedureSchedulerConcurrency.java  |  8 +-
 .../master/assignment/AssignmentManager.java| 21 +++--
 .../assignment/RegionTransitionProcedure.java   | 10 +--
 .../hbase/master/locking/LockProcedure.java |  8 +-
 .../master/procedure/MasterProcedureEnv.java| 10 +--
 .../procedure/TestMasterProcedureEvents.java|  2 +-
 .../procedure/TestMasterProcedureScheduler.java |  4 +-
 .../TestRegionMergeTransactionOnCluster.java| 17 ++--
 12 files changed, 177 insertions(+), 141 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/f8867166/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.java
--
diff --git 
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.java
 
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.java
index 3bff8b8..3e47451 100644
--- 
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.java
+++ 
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.java
@@ -18,6 +18,7 @@
 
 package org.apache.hadoop.hbase.procedure2;
 
+import java.util.Iterator;
 import java.util.concurrent.locks.Condition;
 import java.util.concurrent.locks.ReentrantLock;
 import java.util.concurrent.TimeUnit;
@@ -79,10 +80,31 @@ public abstract class AbstractProcedureScheduler implements 
ProcedureScheduler {
*/
   protected abstract void enqueue(Procedure procedure, boolean addFront);
 
+  @Override
   public void addFront(final Procedure procedure) {
 push(procedure, true, true);
   }
 
+  @Override
+  public void addFront(Iterator procedureIterator) {
+schedLock();
+try {
+  int count = 0;
+  while (procedureIterator.hasNext()) {
+Procedure procedure = procedureIterator.next();
+if (LOG.isTraceEnabled()) {
+  LOG.trace("Wake " + procedure);
+}
+push(procedure, /* addFront= */ true, /* notify= */false);
+count++;
+  }
+  wakePollIfNeeded(count);
+} finally {
+  schedUnlock();
+}
+  }
+
+  @Override
   public void addBack(final Procedure procedure) {
 push(procedure, false, true);
   }
@@ -206,61 +228,22 @@ public abstract class AbstractProcedureScheduler 
implements ProcedureScheduler {
   // ==
   //  Procedure Events
   // ==
-  @Override
-  public boolean waitEvent(final ProcedureEvent event, final Procedure 
procedure) {
-synchronized (event) {
-  if (event.isReady()) {
-return false;
-  }
-  waitProcedure(event.getSuspendedProcedures(), procedure);
-  return true;
-}
-  }
-
-  @Override
-  public void suspendEvent(final ProcedureEvent event) {
-final boolean traceEnabled = LOG.isTraceEnabled();
-synchronized (event) {
-  event.setReady(false);
-  if (traceEnabled) {
-LOG.trace("Suspend " + event);
-  }
-}
-  }
-
-  @Override
-  public void wakeEvent(final ProcedureEvent event) {
-wakeEvents(1, event);
-  }
 
-  @Override
-  public void wakeEvents(final int count, final ProcedureEvent... events) {
-final boolean traceEnabled = LOG.isTraceEnabled();
+  /**
+   * Wake up all of the given events.
+   * Note that we first take scheduler lock and then wakeInternal() 
synchronizes on the event.
+   * Access should remain package-private. Use ProcedureEvent class to 
wake/suspend events.
+   * @param events the list of events to wake
+   */
+  void wakeEvents(ProcedureEvent[] events) {
 schedLock();
 try {
-  int waitingCount = 0;
-

hbase git commit: HBASE-19335 Fix waitUntilAllRegionsAssigned(). Ignore assignments to killed servers and when region state != OPEN.

2017-11-27 Thread appy
Repository: hbase
Updated Branches:
  refs/heads/master 7c1c370f2 -> e70b62854


HBASE-19335 Fix waitUntilAllRegionsAssigned(). Ignore assignments to killed 
servers and when region state != OPEN.

Update timeouts for TestRegionObserverInterface.
Reason: There are ~10 tests there, each with 5 min individual timeout. Too 
much. The test class is labelled MediumTests,
let's used that with our standard CategoryBasedTimeout. 3 min per test function 
should be enough even on slower Apache machines.


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/e70b6285
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/e70b6285
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/e70b6285

Branch: refs/heads/master
Commit: e70b628544b377d4107d13c9fdbe95540f4fd9d7
Parents: 7c1c370
Author: Apekshit Sharma 
Authored: Wed Nov 22 16:33:52 2017 -0800
Committer: Apekshit Sharma 
Committed: Mon Nov 27 16:20:15 2017 -0800

--
 .../hadoop/hbase/DistributedHBaseCluster.java   | 13 +
 .../master/assignment/RegionStateStore.java |  7 +++--
 .../org/apache/hadoop/hbase/HBaseCluster.java   |  9 ++
 .../hadoop/hbase/HBaseTestingUtility.java   | 25 +++--
 .../apache/hadoop/hbase/MiniHBaseCluster.java   | 16 ++-
 .../TestRegionObserverInterface.java| 29 
 6 files changed, 82 insertions(+), 17 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/e70b6285/hbase-it/src/test/java/org/apache/hadoop/hbase/DistributedHBaseCluster.java
--
diff --git 
a/hbase-it/src/test/java/org/apache/hadoop/hbase/DistributedHBaseCluster.java 
b/hbase-it/src/test/java/org/apache/hadoop/hbase/DistributedHBaseCluster.java
index 8c0d273..e8a0041 100644
--- 
a/hbase-it/src/test/java/org/apache/hadoop/hbase/DistributedHBaseCluster.java
+++ 
b/hbase-it/src/test/java/org/apache/hadoop/hbase/DistributedHBaseCluster.java
@@ -20,6 +20,7 @@ package org.apache.hadoop.hbase;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Comparator;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 import java.util.TreeSet;
@@ -50,6 +51,12 @@ public class DistributedHBaseCluster extends HBaseCluster {
   private final Connection connection;
 
   private ClusterManager clusterManager;
+  /**
+   * List of RegionServers killed so far. ServerName also comprises startCode 
of a server,
+   * so any restarted instances of the same server will have different 
ServerName and will not
+   * coincide with past dead ones. So there's no need to cleanup this list.
+   */
+  private Set killedRegionServers = new HashSet<>();
 
   public DistributedHBaseCluster(Configuration conf, ClusterManager 
clusterManager)
   throws IOException {
@@ -113,11 +120,17 @@ public class DistributedHBaseCluster extends HBaseCluster 
{
   @Override
   public void killRegionServer(ServerName serverName) throws IOException {
 LOG.info("Aborting RS: " + serverName.getServerName());
+killedRegionServers.add(serverName);
 clusterManager.kill(ServiceType.HBASE_REGIONSERVER,
   serverName.getHostname(), serverName.getPort());
   }
 
   @Override
+  public boolean isKilledRS(ServerName serverName) {
+return killedRegionServers.contains(serverName);
+  }
+
+  @Override
   public void stopRegionServer(ServerName serverName) throws IOException {
 LOG.info("Stopping RS: " + serverName.getServerName());
 clusterManager.stop(ServiceType.HBASE_REGIONSERVER,

http://git-wip-us.apache.org/repos/asf/hbase/blob/e70b6285/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionStateStore.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionStateStore.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionStateStore.java
index 723a776..ba70ef4 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionStateStore.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionStateStore.java
@@ -48,6 +48,7 @@ import org.apache.hadoop.hbase.zookeeper.MetaTableLocator;
 import org.apache.yetus.audience.InterfaceAudience;
 import org.apache.zookeeper.KeeperException;
 
+import 
org.apache.hadoop.hbase.shaded.com.google.common.annotations.VisibleForTesting;
 import org.apache.hadoop.hbase.shaded.com.google.common.base.Preconditions;
 
 /**
@@ -317,12 +318,14 @@ public class RegionStateStore {
* @param r Result to pull the region state from
* @return the region state, or null if unknown.
*/
-  protected State getRegionState(final Result r, int 

hbase git commit: HBASE-19335 Fix waitUntilAllRegionsAssigned(). Ignore assignments to killed servers and when region state != OPEN.

2017-11-27 Thread appy
Repository: hbase
Updated Branches:
  refs/heads/branch-2 95e4f059a -> 038456142


HBASE-19335 Fix waitUntilAllRegionsAssigned(). Ignore assignments to killed 
servers and when region state != OPEN.

Update timeouts for TestRegionObserverInterface.
Reason: There are ~10 tests there, each with 5 min individual timeout. Too 
much. The test class is labelled MediumTests,
let's used that with our standard CategoryBasedTimeout. 3 min per test function 
should be enough even on slower Apache machines.


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/03845614
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/03845614
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/03845614

Branch: refs/heads/branch-2
Commit: 03845614238de2c7ee040b709a26562e19918ff6
Parents: 95e4f05
Author: Apekshit Sharma 
Authored: Wed Nov 22 16:33:52 2017 -0800
Committer: Apekshit Sharma 
Committed: Mon Nov 27 16:25:54 2017 -0800

--
 .../hadoop/hbase/DistributedHBaseCluster.java   | 13 +
 .../master/assignment/RegionStateStore.java |  7 +++--
 .../org/apache/hadoop/hbase/HBaseCluster.java   |  9 ++
 .../hadoop/hbase/HBaseTestingUtility.java   | 25 +++--
 .../apache/hadoop/hbase/MiniHBaseCluster.java   | 16 ++-
 .../TestRegionObserverInterface.java| 29 
 6 files changed, 82 insertions(+), 17 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/03845614/hbase-it/src/test/java/org/apache/hadoop/hbase/DistributedHBaseCluster.java
--
diff --git 
a/hbase-it/src/test/java/org/apache/hadoop/hbase/DistributedHBaseCluster.java 
b/hbase-it/src/test/java/org/apache/hadoop/hbase/DistributedHBaseCluster.java
index 8c0d273..e8a0041 100644
--- 
a/hbase-it/src/test/java/org/apache/hadoop/hbase/DistributedHBaseCluster.java
+++ 
b/hbase-it/src/test/java/org/apache/hadoop/hbase/DistributedHBaseCluster.java
@@ -20,6 +20,7 @@ package org.apache.hadoop.hbase;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Comparator;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 import java.util.TreeSet;
@@ -50,6 +51,12 @@ public class DistributedHBaseCluster extends HBaseCluster {
   private final Connection connection;
 
   private ClusterManager clusterManager;
+  /**
+   * List of RegionServers killed so far. ServerName also comprises startCode 
of a server,
+   * so any restarted instances of the same server will have different 
ServerName and will not
+   * coincide with past dead ones. So there's no need to cleanup this list.
+   */
+  private Set killedRegionServers = new HashSet<>();
 
   public DistributedHBaseCluster(Configuration conf, ClusterManager 
clusterManager)
   throws IOException {
@@ -113,11 +120,17 @@ public class DistributedHBaseCluster extends HBaseCluster 
{
   @Override
   public void killRegionServer(ServerName serverName) throws IOException {
 LOG.info("Aborting RS: " + serverName.getServerName());
+killedRegionServers.add(serverName);
 clusterManager.kill(ServiceType.HBASE_REGIONSERVER,
   serverName.getHostname(), serverName.getPort());
   }
 
   @Override
+  public boolean isKilledRS(ServerName serverName) {
+return killedRegionServers.contains(serverName);
+  }
+
+  @Override
   public void stopRegionServer(ServerName serverName) throws IOException {
 LOG.info("Stopping RS: " + serverName.getServerName());
 clusterManager.stop(ServiceType.HBASE_REGIONSERVER,

http://git-wip-us.apache.org/repos/asf/hbase/blob/03845614/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionStateStore.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionStateStore.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionStateStore.java
index 723a776..ba70ef4 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionStateStore.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionStateStore.java
@@ -48,6 +48,7 @@ import org.apache.hadoop.hbase.zookeeper.MetaTableLocator;
 import org.apache.yetus.audience.InterfaceAudience;
 import org.apache.zookeeper.KeeperException;
 
+import 
org.apache.hadoop.hbase.shaded.com.google.common.annotations.VisibleForTesting;
 import org.apache.hadoop.hbase.shaded.com.google.common.base.Preconditions;
 
 /**
@@ -317,12 +318,14 @@ public class RegionStateStore {
* @param r Result to pull the region state from
* @return the region state, or null if unknown.
*/
-  protected State getRegionState(final Result r, int 

hbase git commit: HBASE-19354 [branch-1] Build using a jdk that is beyond ubuntu trusty's openjdk-151

2017-11-27 Thread stack
Repository: hbase
Updated Branches:
  refs/heads/branch-1.3 276052be9 -> dca65353d


HBASE-19354 [branch-1] Build using a jdk that is beyond ubuntu trusty's
openjdk-151

Amend our DockerFile so it gets jdks from azul repo.


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/dca65353
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/dca65353
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/dca65353

Branch: refs/heads/branch-1.3
Commit: dca65353d54be8afbd69266e680f6bc621fd165e
Parents: 276052b
Author: Michael Stack 
Authored: Mon Nov 27 15:27:32 2017 -0800
Committer: Michael Stack 
Committed: Mon Nov 27 21:52:50 2017 -0800

--
 dev-support/docker/Dockerfile | 42 +-
 1 file changed, 28 insertions(+), 14 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/dca65353/dev-support/docker/Dockerfile
--
diff --git a/dev-support/docker/Dockerfile b/dev-support/docker/Dockerfile
index 2605e2c..f706e4f 100644
--- a/dev-support/docker/Dockerfile
+++ b/dev-support/docker/Dockerfile
@@ -63,29 +63,43 @@ RUN apt-get -q update && apt-get -q install 
--no-install-recommends -y \
 rsync \
 snappy \
 zlib1g-dev \
-wget \
-openjdk-7-jdk
+wget
+
+
+# Apps that require Java.
+# Maven and ant depend on ubuntu trusty's headless jdk7. The install of
+# maven and ant will pull down this jdk even though we don't want it.
+# Do the maven and ant install here rather than later where the jdk7
+# will overwrite the jdk7 we actually want to use. See next section on jdks.
+###
+RUN apt-get -q update && apt-get -q install --no-install-recommends -y \
+ant \
+maven
 
 ###
-# OpenJDK 8
+# Install jdk7 and jdk8.
 ###
-
+# The jdks in ubuntu trusty don't work. HDFS hangs on openjdk-7 151.
+# See HBASE-19204. So, we use the azul jdks because they are available, and
+# later versions of openjdk (openjdk-7 161). Below we add the azul repo and
+# then install its jdks. We then move aside the headless jdk7 added above
+# when we added maven and ant and rename the azul jvms as
+# though they were from openjdk (otherwise yetus won't set JAVA_HOME;
+# it does find /usr/lib/jvm/ -name java-* -type d so a symlink to the zulu jvms
+# won't work).
 RUN echo "dot_style = mega" > "/root/.wgetrc"
 RUN echo "quiet = on" >> "/root/.wgetrc"
-
-RUN apt-get -q update && apt-get -q install --no-install-recommends -y 
software-properties-common
-RUN add-apt-repository -y ppa:openjdk-r/ppa
+RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 
0x219BD9C9
+RUN apt-get -q update && apt-get -q install --no-install-recommends -y 
software-properties-common python-software-properties
+RUN apt-add-repository 'deb http://repos.azulsystems.com/ubuntu stable main'
 RUN apt-get -q update
-RUN apt-get -q install --no-install-recommends -y openjdk-8-jdk
+RUN apt-get -q install --no-install-recommends -y zulu-8 zulu-7
 RUN update-alternatives --config java
 RUN update-alternatives --config javac
+RUN mv /usr/lib/jvm/java-7-openjdk-amd64 
/usr/lib/jvm/moved.java-7-openjdk-amd64
+RUN mv /usr/lib/jvm/zulu-7-amd64 /usr/lib/jvm/java-7-openjdk-amd64 
+RUN mv /usr/lib/jvm/zulu-8-amd64 /usr/lib/jvm/java-8-openjdk-amd64 
 
-
-# Apps that require Java
-###
-RUN apt-get -q update && apt-get -q install --no-install-recommends -y \
-ant \
-maven
 
 # Fixing the Apache commons / Maven dependency problem under Ubuntu:
 # See http://wiki.apache.org/commons/VfsProblems



hbase git commit: HBASE-19328 Remove asked if splittable log messages

2017-11-27 Thread stack
Repository: hbase
Updated Branches:
  refs/heads/master 3863559b0 -> 0f33931b2


HBASE-19328 Remove asked if splittable log messages

Signed-off-by: Michael Stack 
Signed-off-by: Chia-Ping Tsai 


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/0f33931b
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/0f33931b
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/0f33931b

Branch: refs/heads/master
Commit: 0f33931b2acdf8b7aa9fe0b86cf83a8194cf9a6a
Parents: 3863559
Author: Balazs Meszaros 
Authored: Fri Nov 24 11:16:04 2017 +0100
Committer: Michael Stack 
Committed: Mon Nov 27 21:06:49 2017 -0800

--
 .../org/apache/hadoop/hbase/regionserver/HRegion.java  | 13 +
 1 file changed, 1 insertion(+), 12 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/0f33931b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
index c767dc5..e5e0729 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
@@ -1305,18 +1305,7 @@ public class HRegion implements HeapSize, 
PropagatingConfigurationObserver, Regi
 
   @Override
   public boolean isSplittable() {
-boolean result = isAvailable() && !hasReferences();
-LOG.info("ASKED IF SPLITTABLE " + result + " " + 
getRegionInfo().getShortNameToLog(),
-  new Throwable("LOGGING: REMOVE"));
-// REMOVE BELOW
-LOG.info("DEBUG LIST ALL FILES");
-for (HStore store : this.stores.values()) {
-  LOG.info("store " + store.getColumnFamilyName());
-  for (HStoreFile sf : store.getStorefiles()) {
-LOG.info(sf.toStringDetailed());
-  }
-}
-return result;
+return isAvailable() && !hasReferences();
   }
 
   @Override



hbase git commit: HBASE-19328 Remove asked if splittable log messages

2017-11-27 Thread stack
Repository: hbase
Updated Branches:
  refs/heads/branch-2 a62010c9e -> ed1666720


HBASE-19328 Remove asked if splittable log messages

Signed-off-by: Michael Stack 
Signed-off-by: Chia-Ping Tsai 


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/ed166672
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/ed166672
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/ed166672

Branch: refs/heads/branch-2
Commit: ed166672086e09a9b996eb91a991c43b973eac8d
Parents: a62010c
Author: Balazs Meszaros 
Authored: Fri Nov 24 11:16:04 2017 +0100
Committer: Michael Stack 
Committed: Mon Nov 27 21:07:59 2017 -0800

--
 .../org/apache/hadoop/hbase/regionserver/HRegion.java  | 13 +
 1 file changed, 1 insertion(+), 12 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/ed166672/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
index c767dc5..e5e0729 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
@@ -1305,18 +1305,7 @@ public class HRegion implements HeapSize, 
PropagatingConfigurationObserver, Regi
 
   @Override
   public boolean isSplittable() {
-boolean result = isAvailable() && !hasReferences();
-LOG.info("ASKED IF SPLITTABLE " + result + " " + 
getRegionInfo().getShortNameToLog(),
-  new Throwable("LOGGING: REMOVE"));
-// REMOVE BELOW
-LOG.info("DEBUG LIST ALL FILES");
-for (HStore store : this.stores.values()) {
-  LOG.info("store " + store.getColumnFamilyName());
-  for (HStoreFile sf : store.getStorefiles()) {
-LOG.info(sf.toStringDetailed());
-  }
-}
-return result;
+return isAvailable() && !hasReferences();
   }
 
   @Override



hbase git commit: HBASE-19354 [branch-1] Build using a jdk that is beyond ubuntu trusty's openjdk-151

2017-11-27 Thread stack
Repository: hbase
Updated Branches:
  refs/heads/branch-1.2 ea9d1713d -> e77c57874


HBASE-19354 [branch-1] Build using a jdk that is beyond ubuntu trusty's
openjdk-151

Amend our DockerFile so it gets jdks from azul repo.


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/e77c5787
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/e77c5787
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/e77c5787

Branch: refs/heads/branch-1.2
Commit: e77c5787491045ab45884d4ccceb6c66f51efe7d
Parents: ea9d171
Author: Michael Stack 
Authored: Mon Nov 27 15:27:32 2017 -0800
Committer: Michael Stack 
Committed: Mon Nov 27 15:27:32 2017 -0800

--
 dev-support/docker/Dockerfile | 42 +-
 1 file changed, 28 insertions(+), 14 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/e77c5787/dev-support/docker/Dockerfile
--
diff --git a/dev-support/docker/Dockerfile b/dev-support/docker/Dockerfile
index 2605e2c..f706e4f 100644
--- a/dev-support/docker/Dockerfile
+++ b/dev-support/docker/Dockerfile
@@ -63,29 +63,43 @@ RUN apt-get -q update && apt-get -q install 
--no-install-recommends -y \
 rsync \
 snappy \
 zlib1g-dev \
-wget \
-openjdk-7-jdk
+wget
+
+
+# Apps that require Java.
+# Maven and ant depend on ubuntu trusty's headless jdk7. The install of
+# maven and ant will pull down this jdk even though we don't want it.
+# Do the maven and ant install here rather than later where the jdk7
+# will overwrite the jdk7 we actually want to use. See next section on jdks.
+###
+RUN apt-get -q update && apt-get -q install --no-install-recommends -y \
+ant \
+maven
 
 ###
-# OpenJDK 8
+# Install jdk7 and jdk8.
 ###
-
+# The jdks in ubuntu trusty don't work. HDFS hangs on openjdk-7 151.
+# See HBASE-19204. So, we use the azul jdks because they are available, and
+# later versions of openjdk (openjdk-7 161). Below we add the azul repo and
+# then install its jdks. We then move aside the headless jdk7 added above
+# when we added maven and ant and rename the azul jvms as
+# though they were from openjdk (otherwise yetus won't set JAVA_HOME;
+# it does find /usr/lib/jvm/ -name java-* -type d so a symlink to the zulu jvms
+# won't work).
 RUN echo "dot_style = mega" > "/root/.wgetrc"
 RUN echo "quiet = on" >> "/root/.wgetrc"
-
-RUN apt-get -q update && apt-get -q install --no-install-recommends -y 
software-properties-common
-RUN add-apt-repository -y ppa:openjdk-r/ppa
+RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 
0x219BD9C9
+RUN apt-get -q update && apt-get -q install --no-install-recommends -y 
software-properties-common python-software-properties
+RUN apt-add-repository 'deb http://repos.azulsystems.com/ubuntu stable main'
 RUN apt-get -q update
-RUN apt-get -q install --no-install-recommends -y openjdk-8-jdk
+RUN apt-get -q install --no-install-recommends -y zulu-8 zulu-7
 RUN update-alternatives --config java
 RUN update-alternatives --config javac
+RUN mv /usr/lib/jvm/java-7-openjdk-amd64 
/usr/lib/jvm/moved.java-7-openjdk-amd64
+RUN mv /usr/lib/jvm/zulu-7-amd64 /usr/lib/jvm/java-7-openjdk-amd64 
+RUN mv /usr/lib/jvm/zulu-8-amd64 /usr/lib/jvm/java-8-openjdk-amd64 
 
-
-# Apps that require Java
-###
-RUN apt-get -q update && apt-get -q install --no-install-recommends -y \
-ant \
-maven
 
 # Fixing the Apache commons / Maven dependency problem under Ubuntu:
 # See http://wiki.apache.org/commons/VfsProblems



hbase git commit: HBASE-19355 Missing dependency on hbase-zookeeper module causes CopyTable to fail

2017-11-27 Thread tedyu
Repository: hbase
Updated Branches:
  refs/heads/branch-2 038456142 -> 749361e30


HBASE-19355 Missing dependency on hbase-zookeeper module causes CopyTable to 
fail


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/749361e3
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/749361e3
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/749361e3

Branch: refs/heads/branch-2
Commit: 749361e3041393973fb66dda9ab8aaafbf34db46
Parents: 0384561
Author: tedyu 
Authored: Mon Nov 27 17:40:42 2017 -0800
Committer: tedyu 
Committed: Mon Nov 27 17:40:42 2017 -0800

--
 hbase-mapreduce/pom.xml  | 4 
 .../org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.java| 3 ++-
 2 files changed, 6 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/749361e3/hbase-mapreduce/pom.xml
--
diff --git a/hbase-mapreduce/pom.xml b/hbase-mapreduce/pom.xml
index 3867340..06179fe 100644
--- a/hbase-mapreduce/pom.xml
+++ b/hbase-mapreduce/pom.xml
@@ -144,6 +144,10 @@
   hbase-common
 
 
+  org.apache.hbase
+  hbase-zookeeper
+
+
   
   org.apache.hbase

http://git-wip-us.apache.org/repos/asf/hbase/blob/749361e3/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.java
--
diff --git 
a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.java
 
b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.java
index 31d33f2..c37f284 100644
--- 
a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.java
+++ 
b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.java
@@ -823,7 +823,8 @@ public class TableMapReduceUtil {
   org.apache.commons.lang3.ArrayUtils.class,
   com.fasterxml.jackson.databind.ObjectMapper.class,
   com.fasterxml.jackson.core.Versioned.class,
-  com.fasterxml.jackson.annotation.JsonView.class);
+  com.fasterxml.jackson.annotation.JsonView.class,
+  org.apache.hadoop.hbase.zookeeper.ZKWatcher.class);
   }
 
   /**



hbase git commit: HBASE-19355 Missing dependency on hbase-zookeeper module causes CopyTable to fail

2017-11-27 Thread tedyu
Repository: hbase
Updated Branches:
  refs/heads/master e70b62854 -> b048207c8


HBASE-19355 Missing dependency on hbase-zookeeper module causes CopyTable to 
fail


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/b048207c
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/b048207c
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/b048207c

Branch: refs/heads/master
Commit: b048207c8e4f0042426fe24e76b11c6554afda7d
Parents: e70b628
Author: tedyu 
Authored: Mon Nov 27 17:39:42 2017 -0800
Committer: tedyu 
Committed: Mon Nov 27 17:39:42 2017 -0800

--
 hbase-mapreduce/pom.xml  | 4 
 .../org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.java| 3 ++-
 2 files changed, 6 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/b048207c/hbase-mapreduce/pom.xml
--
diff --git a/hbase-mapreduce/pom.xml b/hbase-mapreduce/pom.xml
index 883cda2..088ba89 100644
--- a/hbase-mapreduce/pom.xml
+++ b/hbase-mapreduce/pom.xml
@@ -144,6 +144,10 @@
   hbase-common
 
 
+  org.apache.hbase
+  hbase-zookeeper
+
+
   
   org.apache.hbase

http://git-wip-us.apache.org/repos/asf/hbase/blob/b048207c/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.java
--
diff --git 
a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.java
 
b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.java
index 31d33f2..c37f284 100644
--- 
a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.java
+++ 
b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.java
@@ -823,7 +823,8 @@ public class TableMapReduceUtil {
   org.apache.commons.lang3.ArrayUtils.class,
   com.fasterxml.jackson.databind.ObjectMapper.class,
   com.fasterxml.jackson.core.Versioned.class,
-  com.fasterxml.jackson.annotation.JsonView.class);
+  com.fasterxml.jackson.annotation.JsonView.class,
+  org.apache.hadoop.hbase.zookeeper.ZKWatcher.class);
   }
 
   /**



hbase git commit: HBASE-19338 Performance regression in RegionServerRpcQuotaManager to get ugi

2017-11-27 Thread binlijin
Repository: hbase
Updated Branches:
  refs/heads/master b048207c8 -> 3863559b0


HBASE-19338 Performance regression in RegionServerRpcQuotaManager to get ugi


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/3863559b
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/3863559b
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/3863559b

Branch: refs/heads/master
Commit: 3863559b07fe19ff72f4cf5a326be7e09e70609c
Parents: b048207
Author: binlijin 
Authored: Tue Nov 28 09:57:35 2017 +0800
Committer: binlijin 
Committed: Tue Nov 28 09:57:35 2017 +0800

--
 .../hadoop/hbase/quotas/RegionServerRpcQuotaManager.java  | 10 --
 .../hadoop/hbase/security/access/AccessController.java|  7 ++-
 .../hadoop/hbase/security/visibility/VisibilityUtils.java |  9 -
 3 files changed, 22 insertions(+), 4 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/3863559b/hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.java
index 69253d7..51b8cc9 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.java
@@ -20,6 +20,7 @@ package org.apache.hadoop.hbase.quotas;
 
 import java.io.IOException;
 import java.util.List;
+import java.util.Optional;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -33,7 +34,6 @@ import org.apache.hadoop.hbase.regionserver.Region;
 import org.apache.hadoop.hbase.regionserver.RegionServerServices;
 import org.apache.hadoop.hbase.security.User;
 import org.apache.hadoop.security.UserGroupInformation;
-
 import 
org.apache.hadoop.hbase.shaded.com.google.common.annotations.VisibleForTesting;
 
 /**
@@ -176,7 +176,13 @@ public class RegionServerRpcQuotaManager {
   private OperationQuota checkQuota(final Region region,
   final int numWrites, final int numReads, final int numScans)
   throws IOException, ThrottlingException {
-UserGroupInformation ugi = 
RpcServer.getRequestUser().orElse(User.getCurrent()).getUGI();
+Optional user = RpcServer.getRequestUser();
+UserGroupInformation ugi;
+if (user.isPresent()) {
+  ugi = user.get().getUGI();
+} else {
+  ugi = User.getCurrent().getUGI();
+}
 TableName table = region.getTableDescriptor().getTableName();
 
 OperationQuota quota = getQuota(ugi, table);

http://git-wip-us.apache.org/repos/asf/hbase/blob/3863559b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
index b921937..f2b7541 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
@@ -429,7 +429,12 @@ public class AccessController implements 
MasterCoprocessor, RegionCoprocessor,
*/
   private User getActiveUser(ObserverContext ctx) throws IOException {
 // for non-rpc handling, fallback to system user
-return ctx.getCaller().orElse(userProvider.getCurrent());
+Optional optionalUser = ctx.getCaller();
+User user;
+if (optionalUser.isPresent()) {
+  return optionalUser.get();
+}
+return userProvider.getCurrent();
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/hbase/blob/3863559b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityUtils.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityUtils.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityUtils.java
index 7d141e7..3db8d0e 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityUtils.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityUtils.java
@@ -31,6 +31,7 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.Optional;
 import java.util.Set;
 
 import org.apache.commons.lang3.StringUtils;
@@ -282,7 +283,13 @@ public 

hbase git commit: HBASE-19338 Performance regression in RegionServerRpcQuotaManager to get ugi

2017-11-27 Thread binlijin
Repository: hbase
Updated Branches:
  refs/heads/branch-2 749361e30 -> a62010c9e


HBASE-19338 Performance regression in RegionServerRpcQuotaManager to get ugi


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/a62010c9
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/a62010c9
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/a62010c9

Branch: refs/heads/branch-2
Commit: a62010c9e72e4137b035af68e79e729ffa69639c
Parents: 749361e
Author: binlijin 
Authored: Tue Nov 28 09:58:39 2017 +0800
Committer: binlijin 
Committed: Tue Nov 28 09:58:39 2017 +0800

--
 .../hadoop/hbase/quotas/RegionServerRpcQuotaManager.java  | 10 --
 .../hadoop/hbase/security/access/AccessController.java|  7 ++-
 .../hadoop/hbase/security/visibility/VisibilityUtils.java |  9 -
 3 files changed, 22 insertions(+), 4 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/a62010c9/hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.java
index 69253d7..51b8cc9 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.java
@@ -20,6 +20,7 @@ package org.apache.hadoop.hbase.quotas;
 
 import java.io.IOException;
 import java.util.List;
+import java.util.Optional;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -33,7 +34,6 @@ import org.apache.hadoop.hbase.regionserver.Region;
 import org.apache.hadoop.hbase.regionserver.RegionServerServices;
 import org.apache.hadoop.hbase.security.User;
 import org.apache.hadoop.security.UserGroupInformation;
-
 import 
org.apache.hadoop.hbase.shaded.com.google.common.annotations.VisibleForTesting;
 
 /**
@@ -176,7 +176,13 @@ public class RegionServerRpcQuotaManager {
   private OperationQuota checkQuota(final Region region,
   final int numWrites, final int numReads, final int numScans)
   throws IOException, ThrottlingException {
-UserGroupInformation ugi = 
RpcServer.getRequestUser().orElse(User.getCurrent()).getUGI();
+Optional user = RpcServer.getRequestUser();
+UserGroupInformation ugi;
+if (user.isPresent()) {
+  ugi = user.get().getUGI();
+} else {
+  ugi = User.getCurrent().getUGI();
+}
 TableName table = region.getTableDescriptor().getTableName();
 
 OperationQuota quota = getQuota(ugi, table);

http://git-wip-us.apache.org/repos/asf/hbase/blob/a62010c9/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
index b921937..f2b7541 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
@@ -429,7 +429,12 @@ public class AccessController implements 
MasterCoprocessor, RegionCoprocessor,
*/
   private User getActiveUser(ObserverContext ctx) throws IOException {
 // for non-rpc handling, fallback to system user
-return ctx.getCaller().orElse(userProvider.getCurrent());
+Optional optionalUser = ctx.getCaller();
+User user;
+if (optionalUser.isPresent()) {
+  return optionalUser.get();
+}
+return userProvider.getCurrent();
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/hbase/blob/a62010c9/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityUtils.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityUtils.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityUtils.java
index 7d141e7..3db8d0e 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityUtils.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityUtils.java
@@ -31,6 +31,7 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.Optional;
 import java.util.Set;
 
 import org.apache.commons.lang3.StringUtils;
@@ -282,7 +283,13 @@ public