hbase git commit: HBASE-19325 Pass a list of server name to postClearDeadServers
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 TsaiProject: 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
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 TsaiProject: 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
Repository: hbase Updated Branches: refs/heads/master f521000d7 -> 5a0881a98 HBASE-19325 Pass a list of server name to postClearDeadServers Signed-off-by: Chia-Ping TsaiProject: 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
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 TsaiProject: 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
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 SharmaAuthored: 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
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: tedyuAuthored: 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
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: tedyuAuthored: 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)
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 TsaiProject: 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
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 YuProject: 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
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 YuProject: 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)
Repository: hbase Updated Branches: refs/heads/master 5c1acf479 -> 7c1c370f2 HBASE-18601 Update Htrace to 4.2 (addendum) - TraceTree fix Signed-off-by: Chia-Ping TsaiProject: 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
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 SharmaAuthored: 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.
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 SharmaAuthored: 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.
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 SharmaAuthored: 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
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 StackAuthored: 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
Repository: hbase Updated Branches: refs/heads/master 3863559b0 -> 0f33931b2 HBASE-19328 Remove asked if splittable log messages Signed-off-by: Michael StackSigned-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
Repository: hbase Updated Branches: refs/heads/branch-2 a62010c9e -> ed1666720 HBASE-19328 Remove asked if splittable log messages Signed-off-by: Michael StackSigned-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
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 StackAuthored: 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
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: tedyuAuthored: 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
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: tedyuAuthored: 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
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: binlijinAuthored: 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
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: binlijinAuthored: 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