hbase git commit: HBASE-20630 B: Delete command enhancements
Repository: hbase Updated Branches: refs/heads/master 423a0ab71 -> 9e9db3245 HBASE-20630 B: Delete command enhancements Signed-off-by: tedyu Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/9e9db324 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/9e9db324 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/9e9db324 Branch: refs/heads/master Commit: 9e9db3245f2d825837f231c004eac99f83829a95 Parents: 423a0ab Author: Vladimir Rodionov Authored: Wed Jun 6 16:49:15 2018 -0700 Committer: tedyu Committed: Wed Jun 13 18:46:48 2018 -0700 -- .../hadoop/hbase/backup/BackupDriver.java | 9 ++- .../hbase/backup/BackupRestoreConstants.java| 7 +- .../hbase/backup/impl/BackupCommands.java | 85 +--- .../hadoop/hbase/backup/TestBackupDelete.java | 58 - 4 files changed, 146 insertions(+), 13 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/9e9db324/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupDriver.java -- diff --git a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupDriver.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupDriver.java index 8baf2f0..6644d89 100644 --- a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupDriver.java +++ b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupDriver.java @@ -17,10 +17,14 @@ */ package org.apache.hadoop.hbase.backup; +import static org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_BACKUP_LIST_DESC; import static org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_BANDWIDTH; import static org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_BANDWIDTH_DESC; import static org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_DEBUG; import static org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_DEBUG_DESC; +import static org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_KEEP; +import static org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_KEEP_DESC; +import static org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_LIST; import static org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_PATH; import static org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_PATH_DESC; import static org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_RECORD_NUMBER; @@ -46,14 +50,13 @@ import org.apache.hadoop.hbase.backup.impl.BackupManager; import org.apache.hadoop.hbase.util.AbstractHBaseTool; import org.apache.hadoop.hbase.util.FSUtils; import org.apache.hadoop.util.ToolRunner; +import org.apache.hbase.thirdparty.org.apache.commons.cli.CommandLine; import org.apache.log4j.Level; import org.apache.log4j.LogManager; import org.apache.yetus.audience.InterfaceAudience; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.apache.hbase.thirdparty.org.apache.commons.cli.CommandLine; - /** * * Command-line entry point for backup operation @@ -152,10 +155,12 @@ public class BackupDriver extends AbstractHBaseTool { addOptNoArg(OPTION_DEBUG, OPTION_DEBUG_DESC); addOptWithArg(OPTION_TABLE, OPTION_TABLE_DESC); addOptWithArg(OPTION_BANDWIDTH, OPTION_BANDWIDTH_DESC); +addOptWithArg(OPTION_LIST, OPTION_BACKUP_LIST_DESC); addOptWithArg(OPTION_WORKERS, OPTION_WORKERS_DESC); addOptWithArg(OPTION_RECORD_NUMBER, OPTION_RECORD_NUMBER_DESC); addOptWithArg(OPTION_SET, OPTION_SET_DESC); addOptWithArg(OPTION_PATH, OPTION_PATH_DESC); +addOptWithArg(OPTION_KEEP, OPTION_KEEP_DESC); addOptWithArg(OPTION_YARN_QUEUE_NAME, OPTION_YARN_QUEUE_NAME_DESC); } http://git-wip-us.apache.org/repos/asf/hbase/blob/9e9db324/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupRestoreConstants.java -- diff --git a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupRestoreConstants.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupRestoreConstants.java index eaeef22..16ec3d2 100644 --- a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupRestoreConstants.java +++ b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupRestoreConstants.java @@ -65,8 +65,9 @@ public interface BackupRestoreConstants { String OPTION_TABLE_DESC = "Table name. If specified, only backup images," + " which contain this table will be listed."; - String OPTION_TABLE_LIST = "l"; + String OPTION_LIST = "l"; String OPTION_TABLE_LIST_DESC = "Table name list, comma-separated."; + String OPTION_BACKUP_LIST_DESC = "Backup ids list, comma-separated."; String
hbase git commit: HBASE-20722 Make RegionServerTracker only depend on children changed event
Repository: hbase Updated Branches: refs/heads/master ec6643438 -> 423a0ab71 HBASE-20722 Make RegionServerTracker only depend on children changed event Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/423a0ab7 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/423a0ab7 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/423a0ab7 Branch: refs/heads/master Commit: 423a0ab71a4e588f3efd2d2ab96a36c16e8b37b1 Parents: ec66434 Author: zhangduo Authored: Wed Jun 13 21:11:23 2018 +0800 Committer: zhangduo Committed: Thu Jun 14 08:36:37 2018 +0800 -- .../hadoop/hbase/client/VersionInfoUtil.java| 2 +- .../org/apache/hadoop/hbase/master/HMaster.java | 64 +++--- .../hbase/master/RegionServerTracker.java | 225 ++- .../hadoop/hbase/master/ServerManager.java | 17 +- .../hbase/master/TestAssignmentListener.java| 98 +--- .../hbase/master/TestClockSkewDetection.java| 2 +- .../hbase/master/TestMasterNoCluster.java | 18 +- .../hbase/master/TestShutdownBackupMaster.java | 2 +- 8 files changed, 167 insertions(+), 261 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/423a0ab7/hbase-server/src/main/java/org/apache/hadoop/hbase/client/VersionInfoUtil.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/client/VersionInfoUtil.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/client/VersionInfoUtil.java index 95984de..cde59eb 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/client/VersionInfoUtil.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/client/VersionInfoUtil.java @@ -102,7 +102,7 @@ public final class VersionInfoUtil { * @param versionInfo the VersionInfo object to pack * @return the version number as int. (e.g. 0x0103004 is 1.3.4) */ - private static int getVersionNumber(final HBaseProtos.VersionInfo versionInfo) { + public static int getVersionNumber(final HBaseProtos.VersionInfo versionInfo) { if (versionInfo != null) { try { final String[] components = getVersionComponents(versionInfo); http://git-wip-us.apache.org/repos/asf/hbase/blob/423a0ab7/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java index f20cc61..883bb4f 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java @@ -72,7 +72,6 @@ import org.apache.hadoop.hbase.NamespaceDescriptor; import org.apache.hadoop.hbase.PleaseHoldException; import org.apache.hadoop.hbase.ReplicationPeerNotFoundException; import org.apache.hadoop.hbase.ScheduledChore; -import org.apache.hadoop.hbase.ServerMetricsBuilder; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.TableDescriptors; import org.apache.hadoop.hbase.TableName; @@ -87,6 +86,7 @@ import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.client.TableDescriptor; import org.apache.hadoop.hbase.client.TableDescriptorBuilder; import org.apache.hadoop.hbase.client.TableState; +import org.apache.hadoop.hbase.client.VersionInfoUtil; import org.apache.hadoop.hbase.coprocessor.CoprocessorHost; import org.apache.hadoop.hbase.exceptions.DeserializationException; import org.apache.hadoop.hbase.exceptions.MergeRegionException; @@ -212,7 +212,6 @@ import org.apache.hbase.thirdparty.com.google.common.collect.Maps; import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil; import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionInfoResponse.CompactionState; -import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionServerInfo; import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.Quotas; import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.SpaceViolationPolicy; import org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription; @@ -297,7 +296,7 @@ public class HMaster extends HRegionServer implements MasterServices { // Manager and zk listener for master election private final ActiveMasterManager activeMasterManager; // Region server tracker - RegionServerTracker regionServerTracker; + private RegionServerTracker regionServerTracker; // Draining region server tracker private DrainingServerTracker drainingServerTracker; // Tracker for load balancer state @@ -725,10 +724,16 @@ public class HMaster extends HRegionServer implements
hbase git commit: HBASE-20722 Make RegionServerTracker only depend on children changed event
Repository: hbase Updated Branches: refs/heads/branch-2 075523dd1 -> 161dc7c7f HBASE-20722 Make RegionServerTracker only depend on children changed event Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/161dc7c7 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/161dc7c7 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/161dc7c7 Branch: refs/heads/branch-2 Commit: 161dc7c7f3101d62240e291939bd86aeff8895ba Parents: 075523d Author: zhangduo Authored: Wed Jun 13 21:11:23 2018 +0800 Committer: zhangduo Committed: Thu Jun 14 08:38:53 2018 +0800 -- .../hadoop/hbase/client/VersionInfoUtil.java| 2 +- .../org/apache/hadoop/hbase/master/HMaster.java | 62 ++--- .../hbase/master/RegionServerTracker.java | 225 ++- .../hadoop/hbase/master/ServerManager.java | 17 +- .../hbase/master/TestAssignmentListener.java| 98 +--- .../hbase/master/TestClockSkewDetection.java| 2 +- .../hbase/master/TestMasterNoCluster.java | 20 +- .../hbase/master/TestShutdownBackupMaster.java | 2 +- 8 files changed, 167 insertions(+), 261 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/161dc7c7/hbase-server/src/main/java/org/apache/hadoop/hbase/client/VersionInfoUtil.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/client/VersionInfoUtil.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/client/VersionInfoUtil.java index 95984de..cde59eb 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/client/VersionInfoUtil.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/client/VersionInfoUtil.java @@ -102,7 +102,7 @@ public final class VersionInfoUtil { * @param versionInfo the VersionInfo object to pack * @return the version number as int. (e.g. 0x0103004 is 1.3.4) */ - private static int getVersionNumber(final HBaseProtos.VersionInfo versionInfo) { + public static int getVersionNumber(final HBaseProtos.VersionInfo versionInfo) { if (versionInfo != null) { try { final String[] components = getVersionComponents(versionInfo); http://git-wip-us.apache.org/repos/asf/hbase/blob/161dc7c7/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java index fcb9989..433944d 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java @@ -72,7 +72,6 @@ import org.apache.hadoop.hbase.NamespaceDescriptor; import org.apache.hadoop.hbase.PleaseHoldException; import org.apache.hadoop.hbase.ReplicationPeerNotFoundException; import org.apache.hadoop.hbase.ScheduledChore; -import org.apache.hadoop.hbase.ServerMetricsBuilder; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.TableDescriptors; import org.apache.hadoop.hbase.TableName; @@ -87,6 +86,7 @@ import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.client.TableDescriptor; import org.apache.hadoop.hbase.client.TableDescriptorBuilder; import org.apache.hadoop.hbase.client.TableState; +import org.apache.hadoop.hbase.client.VersionInfoUtil; import org.apache.hadoop.hbase.coprocessor.CoprocessorHost; import org.apache.hadoop.hbase.exceptions.DeserializationException; import org.apache.hadoop.hbase.exceptions.MergeRegionException; @@ -212,7 +212,6 @@ import org.apache.hbase.thirdparty.com.google.common.collect.Maps; import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil; import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionInfoResponse.CompactionState; -import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionServerInfo; import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.Quotas; import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.SpaceViolationPolicy; import org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription; @@ -297,7 +296,7 @@ public class HMaster extends HRegionServer implements MasterServices { // Manager and zk listener for master election private final ActiveMasterManager activeMasterManager; // Region server tracker - RegionServerTracker regionServerTracker; + private RegionServerTracker regionServerTracker; // Draining region server tracker private DrainingServerTracker drainingServerTracker; // Tracker for load balancer state @@ -725,9 +724,15 @@ public class HMaster extends HRegionServer implements
svn commit: r27441 [1/4] - in /dev/hbase/hbase-2.0.1RC0: ./ CHANGES.md RELEASENOTES.md hbase-2.0.1-bin.tar.gz hbase-2.0.1-bin.tar.gz.asc hbase-2.0.1-bin.tar.gz.sha512 hbase-2.0.1-src.tar.gz hbase-2.0.
Author: stack Date: Wed Jun 13 21:14:03 2018 New Revision: 27441 Log: Add 2.0.1RC0 Added: dev/hbase/hbase-2.0.1RC0/ dev/hbase/hbase-2.0.1RC0/CHANGES.md dev/hbase/hbase-2.0.1RC0/RELEASENOTES.md dev/hbase/hbase-2.0.1RC0/hbase-2.0.1-bin.tar.gz (with props) dev/hbase/hbase-2.0.1RC0/hbase-2.0.1-bin.tar.gz.asc dev/hbase/hbase-2.0.1RC0/hbase-2.0.1-bin.tar.gz.sha512 dev/hbase/hbase-2.0.1RC0/hbase-2.0.1-src.tar.gz (with props) dev/hbase/hbase-2.0.1RC0/hbase-2.0.1-src.tar.gz.asc dev/hbase/hbase-2.0.1RC0/hbase-2.0.1-src.tar.gz.sha512
svn commit: r27441 [3/4] - in /dev/hbase/hbase-2.0.1RC0: ./ CHANGES.md RELEASENOTES.md hbase-2.0.1-bin.tar.gz hbase-2.0.1-bin.tar.gz.asc hbase-2.0.1-bin.tar.gz.sha512 hbase-2.0.1-src.tar.gz hbase-2.0.
Added: dev/hbase/hbase-2.0.1RC0/RELEASENOTES.md == --- dev/hbase/hbase-2.0.1RC0/RELEASENOTES.md (added) +++ dev/hbase/hbase-2.0.1RC0/RELEASENOTES.md Wed Jun 13 21:14:03 2018 @@ -0,0 +1,8441 @@ +# HBASE 2.0.1 Release Notes + + + +These release notes cover new developer and user-facing incompatibilities, important issues, features, and major improvements. + + +--- + +* [HBASE-20590](https://issues.apache.org/jira/browse/HBASE-20590) | *Critical* | **REST Java client is not able to negotiate with the server in the secure mode** + +Adds a negotiation logic between a secure java REST client and server. After this jira the Java REST client will start responding to the Negotiate challenge sent by the server. Adds RESTDemoClient which can be used to verify whether the secure Java REST client works against secure REST server or not. + + +--- + +* [HBASE-20634](https://issues.apache.org/jira/browse/HBASE-20634) | *Critical* | **Reopen region while server crash can cause the procedure to be stuck** + +A second attempt at fixing HBASE-20173. Fixes unfinished keeping of server state inside AM (ONLINE=\>SPLITTING=\>OFFLINE=\>null). Concurrent unassigns look at server state to figure if they should wait on SCP to wake them up or not. + + +--- + +* [HBASE-20592](https://issues.apache.org/jira/browse/HBASE-20592) | *Minor* | **Create a tool to verify tables do not have prefix tree encoding** + +PreUpgradeValidator tool with DataBlockEncoding validator was added to verify cluster is upgradable to HBase 2. + + +--- + +* [HBASE-20661](https://issues.apache.org/jira/browse/HBASE-20661) | *Major* | **Move version from 2.0.0 to 2.0.1-SNAPSHOT in branch-2.0** + +Move version from 2.0.0 to 2.0.1-SNAPSHOT in all poms. + + +--- + +* [HBASE-20544](https://issues.apache.org/jira/browse/HBASE-20544) | *Blocker* | **downstream HBaseTestingUtility fails with invalid port** + + + +HBase now relies on an internal mechanism to determine when it is running a local hbase cluster meant for external interaction vs an encapsulated test. When created via the `HBaseTestingUtility`, ports for Master and RegionServer services and UIs will be set to random ports to allow for multiple parallel uses on a single machine. Normally when running a Standalone HBase Deployment (as described in the HBase Reference Guide) the ports will be picked according to the same defaults used in a full cluster set up. If you wish to instead use the random port assignment set `hbase.localcluster.assign.random.ports` to true. + + +--- + +* [HBASE-20004](https://issues.apache.org/jira/browse/HBASE-20004) | *Minor* | **Client is not able to execute REST queries in a secure cluster** + +Added 'hbase.rest.http.allow.options.method' configuration property to allow user to decide whether Rest Server HTTP should allow OPTIONS method or not. By default it is enabled in HBase 2.1.0+ versions and in other versions it is disabled. +Similarly 'hbase.thrift.http.allow.options.method' is added HBase 1.5, 2.1.0 and 3.0.0 versions. It is disabled by default. + + +--- + +* [HBASE-20327](https://issues.apache.org/jira/browse/HBASE-20327) | *Minor* | **When qualifier is not specified, append and incr operation do not work (shell)** + +This change will enable users to perform append and increment operation with null qualifier via hbase-shell. + + +--- + +* [HBASE-18842](https://issues.apache.org/jira/browse/HBASE-18842) | *Minor* | **The hbase shell clone\_snaphost command returns bad error message** + + + +When attempting to clone a snapshot but using a namespace that does not exist, the HBase shell will now correctly report the exception as caused by the passed namespace. Previously, the shell would report that the problem was an unknown namespace but it would claim the user provided table name was not found as a namespace. Both before and after this change the shell properly used the passed namespace to attempt to handle the request. + + + + +# HBASE 2.0.0 Release Notes + + +These release notes cover new developer and user-facing incompatibilities, important issues, features, and major improvements. + + +--- + +* [HBASE-20464](https://issues.apache.org/jira/browse/HBASE-20464) | *Major* | **Disable IMC** + +Change the default so that on creation of new tables, In-Memory Compaction BASIC is NOT enabled. + +This change is in branch-2.0 only, not in branch-2. + + +--- + +* [HBASE-20276](https://issues.apache.org/jira/browse/HBASE-20276) | *Blocker* | **[shell] Revert shell REPL change and document** + + +The HBase shell now behaves as it did prior to the changes that started in HBASE-15965. Namely, some shell commands return values that may be further manipulated within the shell's IRB session. + +The command line option `--return-values` is no longer acted on by the shell since it now always behaves as it did when passed this parameter. Passing the option results in a
svn commit: r27441 [2/4] - in /dev/hbase/hbase-2.0.1RC0: ./ CHANGES.md RELEASENOTES.md hbase-2.0.1-bin.tar.gz hbase-2.0.1-bin.tar.gz.asc hbase-2.0.1-bin.tar.gz.sha512 hbase-2.0.1-src.tar.gz hbase-2.0.
Added: dev/hbase/hbase-2.0.1RC0/CHANGES.md == --- dev/hbase/hbase-2.0.1RC0/CHANGES.md (added) +++ dev/hbase/hbase-2.0.1RC0/CHANGES.md Wed Jun 13 21:14:03 2018 @@ -0,0 +1,6216 @@ +# HBASE Changelog + +## Release 2.0.1 - Unreleased (as of 2018-06-13) + +### NEW FEATURES: + +| JIRA | Summary | Priority | Component | +|: |: | :--- |: | +| [HBASE-20656](https://issues.apache.org/jira/browse/HBASE-20656) | Validate pre-2.0 coprocessors against HBase 2.0+ | Major | tooling | +| [HBASE-20592](https://issues.apache.org/jira/browse/HBASE-20592) | Create a tool to verify tables do not have prefix tree encoding | Minor | Operability, tooling | + + +### IMPROVEMENTS: + +| JIRA | Summary | Priority | Component | +|: |: | :--- |: | +| [HBASE-20640](https://issues.apache.org/jira/browse/HBASE-20640) | TestQuotaGlobalsSettingsBypass missing test category and ClassRule | Critical | test | +| [HBASE-20548](https://issues.apache.org/jira/browse/HBASE-20548) | Master fails to startup on large clusters, refreshing block distribution | Major | . | +| [HBASE-20567](https://issues.apache.org/jira/browse/HBASE-20567) | Pass both old and new descriptors to pre/post hooks of modify operations for table and namespace | Major | . | +| [HBASE-20523](https://issues.apache.org/jira/browse/HBASE-20523) | PE tool should support configuring client side buffering sizes | Minor | . | +| [HBASE-20527](https://issues.apache.org/jira/browse/HBASE-20527) | Remove unused code in MetaTableAccessor | Trivial | . | +| [HBASE-20507](https://issues.apache.org/jira/browse/HBASE-20507) | Do not need to call recoverLease on the broken file when we fail to create a wal writer | Major | wal | +| [HBASE-20484](https://issues.apache.org/jira/browse/HBASE-20484) | Remove the unnecessary autoboxing in FilterListBase | Trivial | . | +| [HBASE-20327](https://issues.apache.org/jira/browse/HBASE-20327) | When qualifier is not specified, append and incr operation do not work (shell) | Minor | shell | +| [HBASE-20389](https://issues.apache.org/jira/browse/HBASE-20389) | Move website building flags into a profile | Minor | build, website | +| [HBASE-20379](https://issues.apache.org/jira/browse/HBASE-20379) | shadedjars yetus plugin should add a footer link | Major | test | + + +### BUG FIXES: + +| JIRA | Summary | Priority | Component | +|: |: | :--- |: | +| [HBASE-19377](https://issues.apache.org/jira/browse/HBASE-19377) | Compatibility checker complaining about hash collisions | Major | community | +| [HBASE-20689](https://issues.apache.org/jira/browse/HBASE-20689) | Docker fails to install rubocop for precommit | Blocker | build | +| [HBASE-20698](https://issues.apache.org/jira/browse/HBASE-20698) | Master don't record right server version until new started region server call regionServerReport method | Major | proc-v2 | +| [HBASE-20699](https://issues.apache.org/jira/browse/HBASE-20699) | QuotaCache should cancel the QuotaRefresherChore service inside its stop() | Major | . | +| [HBASE-20590](https://issues.apache.org/jira/browse/HBASE-20590) | REST Java client is not able to negotiate with the server in the secure mode | Critical | REST, security | +| [HBASE-20683](https://issues.apache.org/jira/browse/HBASE-20683) | Incorrect return value for PreUpgradeValidator | Critical | . | +| [HBASE-20684](https://issues.apache.org/jira/browse/HBASE-20684) | org.apache.hadoop.hbase.client.Scan#setStopRow javadoc uses incorrect method | Trivial | Client, documentation | +| [HBASE-20670](https://issues.apache.org/jira/browse/HBASE-20670) | NPE in HMaster#isInMaintenanceMode | Minor | . | +| [HBASE-20634](https://issues.apache.org/jira/browse/HBASE-20634) | Reopen region while server crash can cause the procedure to be stuck | Critical | . | +| [HBASE-12882](https://issues.apache.org/jira/browse/HBASE-12882) | Log level for org.apache.hadoop.hbase package should be configurable | Major | hbase | +| [HBASE-20602](https://issues.apache.org/jira/browse/HBASE-20602) | hbase.master.quota.observer.ignore property seems to be not taking effect | Minor | documentation | +| [HBASE-20661](https://issues.apache.org/jira/browse/HBASE-20661) | Move version from 2.0.0 to 2.0.1-SNAPSHOT in branch-2.0 | Major | build | +| [HBASE-20533](https://issues.apache.org/jira/browse/HBASE-20533) | Fix the flaky TestAssignmentManagerMetrics | Major | . | +| [HBASE-20597](https://issues.apache.org/jira/browse/HBASE-20597) | Use a lock to serialize access to a shared reference to ZooKeeperWatcher in HBaseReplicationEndpoint | Minor | Replication | +| [HBASE-20633](https://issues.apache.org/jira/browse/HBASE-20633) | Dropping a table containing a disable violation policy fails to remove the quota upon table delete | Major | . | +| [HBASE-20645](https://issues.apache.org/jira/browse/HBASE-20645) | Fix security\_available method
svn commit: r27441 [4/4] - in /dev/hbase/hbase-2.0.1RC0: ./ CHANGES.md RELEASENOTES.md hbase-2.0.1-bin.tar.gz hbase-2.0.1-bin.tar.gz.asc hbase-2.0.1-bin.tar.gz.sha512 hbase-2.0.1-src.tar.gz hbase-2.0.
Added: dev/hbase/hbase-2.0.1RC0/hbase-2.0.1-bin.tar.gz == Binary file - no diff available. Propchange: dev/hbase/hbase-2.0.1RC0/hbase-2.0.1-bin.tar.gz -- svn:mime-type = application/octet-stream Added: dev/hbase/hbase-2.0.1RC0/hbase-2.0.1-bin.tar.gz.asc == --- dev/hbase/hbase-2.0.1RC0/hbase-2.0.1-bin.tar.gz.asc (added) +++ dev/hbase/hbase-2.0.1RC0/hbase-2.0.1-bin.tar.gz.asc Wed Jun 13 21:14:03 2018 @@ -0,0 +1,16 @@ +-BEGIN PGP SIGNATURE- + +iQIcBAABCAAGBQJbIYMwAAoJEJgWx/yKzJPSqjAQAJNZNb1hCW7Db4OUrsd7/QcZ +/mIOKty4CK6Q3itU4CL2QgEBnoXl8/aMq/jQKieJEjwq3NCeO4NfK4wWBmC2Zq5n +Hv0wHVf3O5f1pvJTXiFEW1JYkSk/iGGmgu2SdDzfeMK1WHSa+XYUmYf2ET9OSRrj +ZOySnmAEXllYkeBYLP37nMJ75BO4bKpO04+sBGmRGCQHILVjm+rpVTdvZDuoeldW +YrXw+OUXWG+t92b2MDT7goW0hZIqfjuDZ44OCimdoRlDvK6LY2Uh5RnqsOU/B7C0 +5YwwNjVHE5x0Tz8Q6zrN3wg8jskuWHnPS4pAb6XUTsi6CB8Ah5NPLRyrPqQOZVkt +hTGMQ526II9LGqi/BrypxuxTATKmNF3GO+BMIqq68TD8i1vNhzsncN0qtvqzRw4h +qRmzhrcmy8P24um8fYFNxVqqaNnCRqVJb46aDflAbdPzucaDw9HcGKdjA97dbA5n +GvAQQcaVYkVJ5BCTTxA/Rnm5RvYRtdk0qEmeEx1ErR5Ss+hz12ogVGueBhbNcged +qGp9v0OHsz2V1Z6hLWgYAG48ZUCX3sWHNwI7uVokpE+2hAKb/LJc1UDN25S6OrZd +jlcw8OgjRaLEGLTRzREYrDuYdjH9VpgvxR+w81klaKAxPs25BR4jfYaRHiBVn23c +r87rgfW83AUPPhPDgH2p +=4L0S +-END PGP SIGNATURE- Added: dev/hbase/hbase-2.0.1RC0/hbase-2.0.1-bin.tar.gz.sha512 == --- dev/hbase/hbase-2.0.1RC0/hbase-2.0.1-bin.tar.gz.sha512 (added) +++ dev/hbase/hbase-2.0.1RC0/hbase-2.0.1-bin.tar.gz.sha512 Wed Jun 13 21:14:03 2018 @@ -0,0 +1,3 @@ +hbase-2.0.1-bin.tar.gz: B047D81B 0E4E2953 87A8C8A7 E2BE4AD0 E0DE8D05 82476BDE +947A2046 54F59F8C 464A11AE 163337B8 6F99A30A 1CF023DE +60E48456 C9D70F98 D244D053 51F8490B Added: dev/hbase/hbase-2.0.1RC0/hbase-2.0.1-src.tar.gz == Binary file - no diff available. Propchange: dev/hbase/hbase-2.0.1RC0/hbase-2.0.1-src.tar.gz -- svn:mime-type = application/octet-stream Added: dev/hbase/hbase-2.0.1RC0/hbase-2.0.1-src.tar.gz.asc == --- dev/hbase/hbase-2.0.1RC0/hbase-2.0.1-src.tar.gz.asc (added) +++ dev/hbase/hbase-2.0.1RC0/hbase-2.0.1-src.tar.gz.asc Wed Jun 13 21:14:03 2018 @@ -0,0 +1,16 @@ +-BEGIN PGP SIGNATURE- + +iQIcBAABCAAGBQJbIYMxAAoJEJgWx/yKzJPSWW4P/jj7tOs+gAfVkSjwEWpAQj6P +l5MCU6K70b6fDugfmE5n83cghHGacDH8r9K9uLQI1Vc+wlai2KwSuYPTNk0917ll +Tfh/eWwaDSPQKwJutfXb1siAKmJGU+NHoC6NibWydtm4xFSnWasRWPsBVomIgEMM +PyuFTrXrVdjfBb4ewhJsGaqjN4eIh9vtuYDLxoEfLRxNhpT7f3xk+FkSzjKJbfSf +xT0Vn/NfsU7BJV+jJjLofm2qRCNotHlmgskDLBcccEIn3MyJ1Edf7oTHGieFUGaD +iaNxpp6Z3L8d26zpHOkM0MjOghXhXr6K6Mbr/WqzCr8oRN+aGb0YfYS/jBxn6pwE +PBqZUeLY6lzKjDoKiaTNDkq3Da/MUl/k2GSEAY+VnGKRClxYLC9UOw7AVKX6p8XP +2/lpNKnSx9LpBYi+5aR4SC4QVHQEf2d/CawNZw0e0B3eRxcx3sjFIMosUXDTYDj9 +4MhvopK2MJ4+WdpL4ZV+v1eE2w7FWB3gbCjBlVCWZFdaWlkRasG+3ckHMxdmESnl +a9xmrKk08R1HHZakJhjpEbjbhA27oGLPbsmRLZG8ukL8/s82iOZsNNmrb5jQ7nXD +Ql+WhK5PUaMJG553CXwDG2RqvORWbsi9IaJ7BU8tH7wc3H29bEk63naNzyKCf96c +0SBsvrIAznmNgzMZi6Jo +=ukfN +-END PGP SIGNATURE- Added: dev/hbase/hbase-2.0.1RC0/hbase-2.0.1-src.tar.gz.sha512 == --- dev/hbase/hbase-2.0.1RC0/hbase-2.0.1-src.tar.gz.sha512 (added) +++ dev/hbase/hbase-2.0.1RC0/hbase-2.0.1-src.tar.gz.sha512 Wed Jun 13 21:14:03 2018 @@ -0,0 +1,3 @@ +hbase-2.0.1-src.tar.gz: 54A1C353 758210F5 4F98A8E5 FB67FE9C 8B1FD32E 733DFC70 +E0D873F3 2E27FD85 5A17D68C B71FE538 96DD31CF C8DF0401 +29BEE194 8DF8FBDD BAB984A9 C6A105C0
[hbase] Git Push Summary
Repository: hbase Updated Tags: refs/tags/2.0.1RC0 [created] 598c2277c
[hbase] Git Push Summary
Repository: hbase Updated Tags: refs/tags/1.4.5RC1 [created] ca99a9466
svn commit: r27439 - in /release/hbase: 1.3.2.1/ 1.3.2/
Author: elserj Date: Wed Jun 13 19:49:55 2018 New Revision: 27439 Log: Release 1.3.2.1 Added: release/hbase/1.3.2.1/ release/hbase/1.3.2.1/hbase-1.3.2.1-bin.tar.gz (with props) release/hbase/1.3.2.1/hbase-1.3.2.1-bin.tar.gz.asc release/hbase/1.3.2.1/hbase-1.3.2.1-bin.tar.gz.md5 release/hbase/1.3.2.1/hbase-1.3.2.1-bin.tar.gz.sha512 release/hbase/1.3.2.1/hbase-1.3.2.1-src.tar.gz (with props) release/hbase/1.3.2.1/hbase-1.3.2.1-src.tar.gz.asc release/hbase/1.3.2.1/hbase-1.3.2.1-src.tar.gz.md5 release/hbase/1.3.2.1/hbase-1.3.2.1-src.tar.gz.sha512 Removed: release/hbase/1.3.2/ Added: release/hbase/1.3.2.1/hbase-1.3.2.1-bin.tar.gz == Binary file - no diff available. Propchange: release/hbase/1.3.2.1/hbase-1.3.2.1-bin.tar.gz -- svn:mime-type = application/octet-stream Added: release/hbase/1.3.2.1/hbase-1.3.2.1-bin.tar.gz.asc == --- release/hbase/1.3.2.1/hbase-1.3.2.1-bin.tar.gz.asc (added) +++ release/hbase/1.3.2.1/hbase-1.3.2.1-bin.tar.gz.asc Wed Jun 13 19:49:55 2018 @@ -0,0 +1,16 @@ +-BEGIN PGP SIGNATURE- + +iQIzBAABCAAdFiEEnmKCL0Zo8XsJcq3Zt9XNRUZ31mwFAlsRtvcACgkQt9XNRUZ3 +1myITQ/+IbWXkFo+JueUFw5D9Us3y9y5JCNrQ5yu5qJDdGiX9BamNsJ2aWxGx/Wn +AnXNnVguTZ3PNYp0ncefmmPWnxbrxyRbbcKuU2cVAQGNlIp9rJQiQ1DR//2C3uk0 +6v+QSnfp7o5tm8RxulubYkz3dBp0lQo78YI+1QY85jTpfkHUwrAnC8uN2ny9/0JC +g2KfZ8MRlMZ6OYFIuRm4V2TDTY1MXrfoaO9L/X0riiXm0eMebZOWgpkgYRezDRv7 +mES83hDePS7YmdLO6Z8Ms5DH1wRCecrYeZhvQ5GSSVeLLXDkGjhtFpQ0/ckgjDql +iIhooQTjKnl0m+au06/+ytNSY/8l52toL72WjU5m9F0qSKoKYA5ZpMq3cpQxiyxQ +Jnp9SJ6Va0cyjBWoj3KoRiSaJpIPhR+3oNj2DDKBzUTPlLDFYNuePoy8SdV3lJYC +p4gLv7PhmNM91g37ntxkEZhljWynTi4urJBRmmAOqvXutPXWSIpXO9VyNciHk50v +n8/yToCgqczGSnanoa9/LjFU9fRY8wZJePJ+85c9EwbbDrsA9g0NqSP6Myz8c4wz +M9ox4BuEbKFXj3A1u54fhvpc+6BJTTNMGgw5VBfNFVEOQbr4OxxPZ9SRt2Q+Uu0v +DI4c+UTkICgNjfKlgRj/KAOVD3ecy+j2BnL5TPvRuJhtO0zeYAc= +=i/ap +-END PGP SIGNATURE- Added: release/hbase/1.3.2.1/hbase-1.3.2.1-bin.tar.gz.md5 == --- release/hbase/1.3.2.1/hbase-1.3.2.1-bin.tar.gz.md5 (added) +++ release/hbase/1.3.2.1/hbase-1.3.2.1-bin.tar.gz.md5 Wed Jun 13 19:49:55 2018 @@ -0,0 +1 @@ +hbase-1.3.2.1-bin.tar.gz: 1D CB 27 E0 B0 56 28 B8 BE C7 41 03 2E B5 D3 31 Added: release/hbase/1.3.2.1/hbase-1.3.2.1-bin.tar.gz.sha512 == --- release/hbase/1.3.2.1/hbase-1.3.2.1-bin.tar.gz.sha512 (added) +++ release/hbase/1.3.2.1/hbase-1.3.2.1-bin.tar.gz.sha512 Wed Jun 13 19:49:55 2018 @@ -0,0 +1,3 @@ +hbase-1.3.2.1-bin.tar.gz: 16EB62DA D4EA40F6 DD8747CF 6A49678E D1A4A53E B3A9E67D + C53A89F1 471D1DC5 5147E5CA D1AED8B0 B22A01F5 C1F6F6CA + 4B4E9562 61CDA9B6 91D94C16 26593AFB Added: release/hbase/1.3.2.1/hbase-1.3.2.1-src.tar.gz == Binary file - no diff available. Propchange: release/hbase/1.3.2.1/hbase-1.3.2.1-src.tar.gz -- svn:mime-type = application/octet-stream Added: release/hbase/1.3.2.1/hbase-1.3.2.1-src.tar.gz.asc == --- release/hbase/1.3.2.1/hbase-1.3.2.1-src.tar.gz.asc (added) +++ release/hbase/1.3.2.1/hbase-1.3.2.1-src.tar.gz.asc Wed Jun 13 19:49:55 2018 @@ -0,0 +1,16 @@ +-BEGIN PGP SIGNATURE- + +iQIzBAABCAAdFiEEnmKCL0Zo8XsJcq3Zt9XNRUZ31mwFAlsRtvcACgkQt9XNRUZ3 +1myjeA//Q9WPcu00Dnm8Cy5JQc7M8RnuWHFbMLBmJMDamyBHwbRpCWV0J7qpXTfO +g5V09BmSUcJ2R5WRkMqAC8EMifTNP/LFhn1//H4HjEFoeYSXUDB81WQAY9/+/2EZ +u6EkmO1GgkG6WxVIamljyhVZut3sB2IMRUMWxjFLQ/J3q6GxvRMoM90gCOnwTwuD +aVZiAWFqF3O77yQsnMys7fNr15ymFIBT5YzxMF3W5AI1kY0tDh4i8zilxe2tjz3g +0VmvAbvTrq1/SPQle4in8TzcwhKOS++EddYx7DzNmZT2CpC07iSoq87DpEGZiGah +ueMZjYM9+ouKBnGbhmaSd/wjWfQmXf2OXszxmxOXFYmTqy1tjILV7UWB3ejivkcU +6u/NYYqA3SOZ5T/Q6K+592qAGbtU/zn8nVfQmaTjrAxWQqV8EnFavsI3oas17+jJ +/qCjyoTmyRPShruVsLOJvizDit6xleV/Y9nZ2lbxRAnxwS2xzm5gR8Xbvcmb8aWK +FZf7SN2HR6aid5Nyx0IIc9m0qCpLWYUnKbgrQJavhqps19OrLnpGvmVzHcKz/ngA +9S7U7jTIavk/xDx8G8N1ebCJj7Cl6qwoyYSnfCotBogpF6DSkFR9S0lD9mGPU/oz +6Iba/yiViStZEKCsEqIjfptc9Ilq4k8ru5foomHx2j9dX/X+M1s= +=vMR/ +-END PGP SIGNATURE- Added: release/hbase/1.3.2.1/hbase-1.3.2.1-src.tar.gz.md5 == --- release/hbase/1.3.2.1/hbase-1.3.2.1-src.tar.gz.md5 (added) +++ release/hbase/1.3.2.1/hbase-1.3.2.1-src.tar.gz.md5 Wed Jun 13 19:49:55 2018 @@ -0,0 +1 @@ +hbase-1.3.2.1-src.tar.gz: 47 99 46 3C 2B E2 59 9B 5B 8B 2F 16 81 53 6B FE Added: release/hbase/1.3.2.1/hbase-1.3.2.1-src.tar.gz.sha512
svn commit: r27438 - in /dev/hbase/1.4.5RC1: ./ hbase-1.4.5-bin.tar.gz hbase-1.4.5-bin.tar.gz.asc hbase-1.4.5-bin.tar.gz.sha512 hbase-1.4.5-src.tar.gz hbase-1.4.5-src.tar.gz.asc hbase-1.4.5-src.tar.gz
Author: elserj Date: Wed Jun 13 19:45:24 2018 New Revision: 27438 Log: 1.4.5 rc1 Added: dev/hbase/1.4.5RC1/ dev/hbase/1.4.5RC1/hbase-1.4.5-bin.tar.gz (with props) dev/hbase/1.4.5RC1/hbase-1.4.5-bin.tar.gz.asc dev/hbase/1.4.5RC1/hbase-1.4.5-bin.tar.gz.sha512 dev/hbase/1.4.5RC1/hbase-1.4.5-src.tar.gz (with props) dev/hbase/1.4.5RC1/hbase-1.4.5-src.tar.gz.asc dev/hbase/1.4.5RC1/hbase-1.4.5-src.tar.gz.sha512 Added: dev/hbase/1.4.5RC1/hbase-1.4.5-bin.tar.gz == Binary file - no diff available. Propchange: dev/hbase/1.4.5RC1/hbase-1.4.5-bin.tar.gz -- svn:mime-type = application/octet-stream Added: dev/hbase/1.4.5RC1/hbase-1.4.5-bin.tar.gz.asc == --- dev/hbase/1.4.5RC1/hbase-1.4.5-bin.tar.gz.asc (added) +++ dev/hbase/1.4.5RC1/hbase-1.4.5-bin.tar.gz.asc Wed Jun 13 19:45:24 2018 @@ -0,0 +1,16 @@ +-BEGIN PGP SIGNATURE- + +iQIzBAABCAAdFiEEnmKCL0Zo8XsJcq3Zt9XNRUZ31mwFAlshc/0ACgkQt9XNRUZ3 +1mxB8hAAnybk+gsM3y7O4KwbJT1h2XnrrBEUPuOtTsCQ+ln1TEcJ6QDLKc9c6m4R +vIse78ORZdIFEV8qn3QRwFAvojblCijA1LSjKv6Y+mejc7lB6exqH53z4X/sHUhe +K/HrtT6P7X/mciRZdXJr1AbtyT9XQJHjLkzHdxAtYOE13nJEtXLHmtniPDF4iry7 +mPhqUkzP/H7EkYp8cgnJKVwJlCaNaLJpHK4UIZeV2zZjymbmCt4HbQb4za1z4qkh +y9W37XJ9c+Qwq/K7dfhdDqg44JDRJzbMC/GQsqGRQ+yKMLLF5afGuBrKAfaOHQ2y +Nib6UbTZ/2DTg2dcHZFcp6Ysw5NUI0EodpDDo/8zKcfi2hll0R0lVxiHzVROp6DC +YCntlaAiSngtzd26DHNijEpLf2LVIrdj1Qdo9N5CHTxMPstBWjirWBKYV9WVd6DX +w4kEbeHfIf2MCGg7KElPsZucI05ZaMRq22/Nb1cvb28AbAUBtWmcHx0zhg94Zi+t +C7MmJD0JK5YK4Lqp8qw6V5mU5OWHwWcWy6H73T8EHabZwBRMzTl0ExEmCW+I+CR4 +RAa0wfO37IcSLUB5GTVRmisgCo525UyGvDsW+S/sXdxe3VS/EyD5cXRtmgabz07c +uMe2bruHCtNhHrLXsKbz2pXKAzDhXTdCqRuihV3XqzdLkldZlXc= +=dfTQ +-END PGP SIGNATURE- Added: dev/hbase/1.4.5RC1/hbase-1.4.5-bin.tar.gz.sha512 == --- dev/hbase/1.4.5RC1/hbase-1.4.5-bin.tar.gz.sha512 (added) +++ dev/hbase/1.4.5RC1/hbase-1.4.5-bin.tar.gz.sha512 Wed Jun 13 19:45:24 2018 @@ -0,0 +1,3 @@ +hbase-1.4.5-bin.tar.gz: 1C34A448 DF4E102E 7964C6D8 84C2B1E5 35DD0CAA E67E6B15 +92DB2B10 8A6D3A0F B2D841F7 677EB5C3 8EB6D78F 342CB42F +8CE90AA6 D62A5362 3C727023 4E8C95EE Added: dev/hbase/1.4.5RC1/hbase-1.4.5-src.tar.gz == Binary file - no diff available. Propchange: dev/hbase/1.4.5RC1/hbase-1.4.5-src.tar.gz -- svn:mime-type = application/octet-stream Added: dev/hbase/1.4.5RC1/hbase-1.4.5-src.tar.gz.asc == --- dev/hbase/1.4.5RC1/hbase-1.4.5-src.tar.gz.asc (added) +++ dev/hbase/1.4.5RC1/hbase-1.4.5-src.tar.gz.asc Wed Jun 13 19:45:24 2018 @@ -0,0 +1,16 @@ +-BEGIN PGP SIGNATURE- + +iQIzBAABCAAdFiEEnmKCL0Zo8XsJcq3Zt9XNRUZ31mwFAlshc/0ACgkQt9XNRUZ3 +1mxsbBAAlzRGmxyKzY3aBwq1l76U0yvxM+pC0cgZs7gEm9qnFB49Sh2nuuPm7l4k +Trp86JmbKMEfo8zK1UP//MZRSp7Ams/EDX3GFogvEiQfTPTnI7ejaClyv5q1EA7m +h1OFzgMNTHrHVG1GFdZSLy/gYnpFmu48WDA/zAepNU05B857FZJTVa+qAORNZ3xg +8isW3j+vDdLhxG4Np8hLFDBTnk6AEQcCBFQaq3bnsLpOd+EcnVf0ZA1fx1zs120w +M9RB1ioUhyLH7q/Oiu3KQghP5M5rVc8HNSVbctm7Kcc3xyRwJc26sl3X+hTmf1/j +y3YcZoHYK6qOtn6yy8g/+bJaVRnHybmG2lTTlPSheVeVJbEwfOvEHP3ig6Jby4CI +Q9blHl5thTaGoOlBU2l2LeiEZGIa31eM2G0gEDOIHnmFBup9wsddTy1ECQqNmOvI +SkSsdy9XCFJ3vsZH0SJoUwwnNUCUAZJ+1pnZp1ukJN+TeYIs4w0Om7IeyboXgceE +d+r+vkvMxNypjfjegeXLH8P9faDHZePL1cCpsRoBu9FrJzpOp9ObcPdoGEquSqEb +YnRteaWb+ztls2MjZNyuBNMqP9JblbDYmpS3E783gvB2rCdik7m2xhPAPwDq+eki +MnAJyfrHBQHn18XSQMlqhN9Gyf5KG1S6W3mYz/cK4T3oaUnhHEw= +=QQhI +-END PGP SIGNATURE- Added: dev/hbase/1.4.5RC1/hbase-1.4.5-src.tar.gz.sha512 == --- dev/hbase/1.4.5RC1/hbase-1.4.5-src.tar.gz.sha512 (added) +++ dev/hbase/1.4.5RC1/hbase-1.4.5-src.tar.gz.sha512 Wed Jun 13 19:45:24 2018 @@ -0,0 +1,3 @@ +hbase-1.4.5-src.tar.gz: 61B83966 952D334A FDAE7E3A 11FD8529 90583302 4AC186C4 +2B7BDA11 5CB472A4 34C71466 4DCF90BB 8735F658 20975292 +35319D5C 2287B0DE 64F484C7 42F635D6
[hbase] Git Push Summary
Repository: hbase Updated Tags: refs/tags/rel/1.2.6.1 [created] 390823dd0
hbase-site git commit: INFRA-10751 Empty commit
Repository: hbase-site Updated Branches: refs/heads/asf-site bb78f24d2 -> 436b0b15e INFRA-10751 Empty commit Project: http://git-wip-us.apache.org/repos/asf/hbase-site/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase-site/commit/436b0b15 Tree: http://git-wip-us.apache.org/repos/asf/hbase-site/tree/436b0b15 Diff: http://git-wip-us.apache.org/repos/asf/hbase-site/diff/436b0b15 Branch: refs/heads/asf-site Commit: 436b0b15e699bb9b7430791fc1160605141197ee Parents: bb78f24 Author: jenkins Authored: Wed Jun 13 14:49:39 2018 + Committer: jenkins Committed: Wed Jun 13 14:49:39 2018 + -- --
[2/8] hbase-site git commit: Published site at ec66434380aee62289ccf7b173d765bbe7083718.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bb78f24d/devapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html -- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html b/devapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html index 094b592..5dc41f3 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html @@ -67,840 +67,860 @@ 059import org.apache.hadoop.hbase.util.Pair; 060import org.apache.hadoop.hbase.wal.AbstractFSWALProvider; 061import org.apache.yetus.audience.InterfaceAudience; -062import org.slf4j.Logger; -063import org.slf4j.LoggerFactory; -064 -065import org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting; -066import org.apache.hbase.thirdparty.com.google.common.util.concurrent.ThreadFactoryBuilder; -067 -068/** -069 * This class is responsible to manage all the replication sources. There are two classes of -070 * sources: -071 * ul -072 * liNormal sources are persistent and one per peer cluster/li -073 * liOld sources are recovered from a failed region server and our only goal is to finish -074 * replicating the WAL queue it had/li -075 * /ul -076 * p -077 * When a region server dies, this class uses a watcher to get notified and it tries to grab a lock -078 * in order to transfer all the queues in a local old source. -079 * p -080 * Synchronization specification: -081 * ul -082 * liNo need synchronized on {@link #sources}. {@link #sources} is a ConcurrentHashMap and there -083 * is a Lock for peer id in {@link PeerProcedureHandlerImpl}. So there is no race for peer -084 * operations./li -085 * liNeed synchronized on {@link #walsById}. There are four methods which modify it, -086 * {@link #addPeer(String)}, {@link #removePeer(String)}, -087 * {@link #cleanOldLogs(NavigableSet, String, boolean, String)} and {@link #preLogRoll(Path)}. -088 * {@link #walsById} is a ConcurrentHashMap and there is a Lock for peer id in -089 * {@link PeerProcedureHandlerImpl}. So there is no race between {@link #addPeer(String)} and -090 * {@link #removePeer(String)}. {@link #cleanOldLogs(NavigableSet, String, boolean, String)} is -091 * called by {@link ReplicationSourceInterface}. So no race with {@link #addPeer(String)}. -092 * {@link #removePeer(String)} will terminate the {@link ReplicationSourceInterface} firstly, then -093 * remove the wals from {@link #walsById}. So no race with {@link #removePeer(String)}. The only -094 * case need synchronized is {@link #cleanOldLogs(NavigableSet, String, boolean, String)} and -095 * {@link #preLogRoll(Path)}./li -096 * liNo need synchronized on {@link #walsByIdRecoveredQueues}. There are three methods which -097 * modify it, {@link #removePeer(String)} , -098 * {@link #cleanOldLogs(NavigableSet, String, boolean, String)} and -099 * {@link ReplicationSourceManager.NodeFailoverWorker#run()}. -100 * {@link #cleanOldLogs(NavigableSet, String, boolean, String)} is called by -101 * {@link ReplicationSourceInterface}. {@link #removePeer(String)} will terminate the -102 * {@link ReplicationSourceInterface} firstly, then remove the wals from -103 * {@link #walsByIdRecoveredQueues}. And {@link ReplicationSourceManager.NodeFailoverWorker#run()} -104 * will add the wals to {@link #walsByIdRecoveredQueues} firstly, then start up a -105 * {@link ReplicationSourceInterface}. So there is no race here. For -106 * {@link ReplicationSourceManager.NodeFailoverWorker#run()} and {@link #removePeer(String)}, there -107 * is already synchronized on {@link #oldsources}. So no need synchronized on -108 * {@link #walsByIdRecoveredQueues}./li -109 * liNeed synchronized on {@link #latestPaths} to avoid the new open source miss new log./li -110 * liNeed synchronized on {@link #oldsources} to avoid adding recovered source for the -111 * to-be-removed peer./li -112 * /ul -113 */ -114@InterfaceAudience.Private -115public class ReplicationSourceManager implements ReplicationListener { -116 private static final Logger LOG = LoggerFactory.getLogger(ReplicationSourceManager.class); -117 // all the sources that read this RS's logs and every peer only has one replication source -118 private final ConcurrentMapString, ReplicationSourceInterface sources; -119 // List of all the sources we got from died RSs -120 private final ListReplicationSourceInterface oldsources; -121 private final ReplicationQueueStorage queueStorage; -122 private final ReplicationTracker replicationTracker; -123 private final ReplicationPeers replicationPeers; -124 // UUID for this cluster -125 private final UUID clusterId; -126 // All about stopping -127 private final Server
[3/8] hbase-site git commit: Published site at ec66434380aee62289ccf7b173d765bbe7083718.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bb78f24d/devapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.ReplicationQueueOperation.html -- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.ReplicationQueueOperation.html b/devapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.ReplicationQueueOperation.html index 094b592..5dc41f3 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.ReplicationQueueOperation.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.ReplicationQueueOperation.html @@ -67,840 +67,860 @@ 059import org.apache.hadoop.hbase.util.Pair; 060import org.apache.hadoop.hbase.wal.AbstractFSWALProvider; 061import org.apache.yetus.audience.InterfaceAudience; -062import org.slf4j.Logger; -063import org.slf4j.LoggerFactory; -064 -065import org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting; -066import org.apache.hbase.thirdparty.com.google.common.util.concurrent.ThreadFactoryBuilder; -067 -068/** -069 * This class is responsible to manage all the replication sources. There are two classes of -070 * sources: -071 * ul -072 * liNormal sources are persistent and one per peer cluster/li -073 * liOld sources are recovered from a failed region server and our only goal is to finish -074 * replicating the WAL queue it had/li -075 * /ul -076 * p -077 * When a region server dies, this class uses a watcher to get notified and it tries to grab a lock -078 * in order to transfer all the queues in a local old source. -079 * p -080 * Synchronization specification: -081 * ul -082 * liNo need synchronized on {@link #sources}. {@link #sources} is a ConcurrentHashMap and there -083 * is a Lock for peer id in {@link PeerProcedureHandlerImpl}. So there is no race for peer -084 * operations./li -085 * liNeed synchronized on {@link #walsById}. There are four methods which modify it, -086 * {@link #addPeer(String)}, {@link #removePeer(String)}, -087 * {@link #cleanOldLogs(NavigableSet, String, boolean, String)} and {@link #preLogRoll(Path)}. -088 * {@link #walsById} is a ConcurrentHashMap and there is a Lock for peer id in -089 * {@link PeerProcedureHandlerImpl}. So there is no race between {@link #addPeer(String)} and -090 * {@link #removePeer(String)}. {@link #cleanOldLogs(NavigableSet, String, boolean, String)} is -091 * called by {@link ReplicationSourceInterface}. So no race with {@link #addPeer(String)}. -092 * {@link #removePeer(String)} will terminate the {@link ReplicationSourceInterface} firstly, then -093 * remove the wals from {@link #walsById}. So no race with {@link #removePeer(String)}. The only -094 * case need synchronized is {@link #cleanOldLogs(NavigableSet, String, boolean, String)} and -095 * {@link #preLogRoll(Path)}./li -096 * liNo need synchronized on {@link #walsByIdRecoveredQueues}. There are three methods which -097 * modify it, {@link #removePeer(String)} , -098 * {@link #cleanOldLogs(NavigableSet, String, boolean, String)} and -099 * {@link ReplicationSourceManager.NodeFailoverWorker#run()}. -100 * {@link #cleanOldLogs(NavigableSet, String, boolean, String)} is called by -101 * {@link ReplicationSourceInterface}. {@link #removePeer(String)} will terminate the -102 * {@link ReplicationSourceInterface} firstly, then remove the wals from -103 * {@link #walsByIdRecoveredQueues}. And {@link ReplicationSourceManager.NodeFailoverWorker#run()} -104 * will add the wals to {@link #walsByIdRecoveredQueues} firstly, then start up a -105 * {@link ReplicationSourceInterface}. So there is no race here. For -106 * {@link ReplicationSourceManager.NodeFailoverWorker#run()} and {@link #removePeer(String)}, there -107 * is already synchronized on {@link #oldsources}. So no need synchronized on -108 * {@link #walsByIdRecoveredQueues}./li -109 * liNeed synchronized on {@link #latestPaths} to avoid the new open source miss new log./li -110 * liNeed synchronized on {@link #oldsources} to avoid adding recovered source for the -111 * to-be-removed peer./li -112 * /ul -113 */ -114@InterfaceAudience.Private -115public class ReplicationSourceManager implements ReplicationListener { -116 private static final Logger LOG = LoggerFactory.getLogger(ReplicationSourceManager.class); -117 // all the sources that read this RS's logs and every peer only has one replication source -118 private final ConcurrentMapString, ReplicationSourceInterface sources; -119 // List of all the sources we got from died RSs -120 private final ListReplicationSourceInterface oldsources; -121 private final ReplicationQueueStorage queueStorage; -122 private final ReplicationTracker replicationTracker; -123 private final ReplicationPeers
[7/8] hbase-site git commit: Published site at ec66434380aee62289ccf7b173d765bbe7083718.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bb78f24d/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html -- diff --git a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html index 098a00c..8ad7a76 100644 --- a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html +++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html @@ -1204,7 +1204,7 @@ implements getQueueId -publichttps://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true; title="class or interface in java.lang">StringgetQueueId() +publichttps://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true; title="class or interface in java.lang">StringgetQueueId() Description copied from interface:ReplicationSourceInterface Get the queue id that the source is replicating to @@ -1221,7 +1221,7 @@ implements getPeerId -publichttps://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true; title="class or interface in java.lang">StringgetPeerId() +publichttps://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true; title="class or interface in java.lang">StringgetPeerId() Description copied from interface:ReplicationSourceInterface Get the id that the source is replicating to. @@ -1238,7 +1238,7 @@ implements getCurrentPath -publicorg.apache.hadoop.fs.PathgetCurrentPath() +publicorg.apache.hadoop.fs.PathgetCurrentPath() Description copied from interface:ReplicationSourceInterface Get the current log that's replicated @@ -1255,7 +1255,7 @@ implements isSourceActive -publicbooleanisSourceActive() +publicbooleanisSourceActive() Specified by: isSourceActivein interfaceReplicationSourceInterface @@ -1270,7 +1270,7 @@ implements getStats -publichttps://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true; title="class or interface in java.lang">StringgetStats() +publichttps://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true; title="class or interface in java.lang">StringgetStats() Description copied from interface:ReplicationSourceInterface Get a string representation of the current statistics for this source @@ -1288,7 +1288,7 @@ implements getSourceMetrics -publicMetricsSourcegetSourceMetrics() +publicMetricsSourcegetSourceMetrics() Specified by: getSourceMetricsin interfaceReplicationSourceInterface @@ -1303,7 +1303,7 @@ implements postShipEdits -publicvoidpostShipEdits(https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true; title="class or interface in java.util">ListWAL.Entryentries, +publicvoidpostShipEdits(https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true; title="class or interface in java.util">ListWAL.Entryentries, intbatchSize) Description copied from interface:ReplicationSourceInterface Call this after the shipper thread ship some entries to peer cluster. @@ -1322,7 +1322,7 @@ implements getWALFileLengthProvider -publicWALFileLengthProvidergetWALFileLengthProvider() +publicWALFileLengthProvidergetWALFileLengthProvider() Specified by: getWALFileLengthProviderin interfaceReplicationSourceInterface @@ -1337,7 +1337,7 @@ implements getServerWALsBelongTo -publicServerNamegetServerWALsBelongTo() +publicServerNamegetServerWALsBelongTo() Description copied from interface:ReplicationSourceInterface The queue of WALs only belong to one region server. This will return the server name which all WALs belong to. @@ -1355,7 +1355,7 @@ implements getServer -ServergetServer() +ServergetServer() @@ -1364,7 +1364,7 @@ implements getQueueStorage -ReplicationQueueStoragegetQueueStorage() +ReplicationQueueStoragegetQueueStorage() http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bb78f24d/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.NodeFailoverWorker.html -- diff --git a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.NodeFailoverWorker.html b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.NodeFailoverWorker.html index af0be80..befc208 100644 --- a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.NodeFailoverWorker.html +++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.NodeFailoverWorker.html @@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab"; -class ReplicationSourceManager.NodeFailoverWorker +class ReplicationSourceManager.NodeFailoverWorker extends
[6/8] hbase-site git commit: Published site at ec66434380aee62289ccf7b173d765bbe7083718.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bb78f24d/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html -- diff --git a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html index be50be5..a601aa3 100644 --- a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html +++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html @@ -18,7 +18,7 @@ catch(err) { } //--> -var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10}; +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10}; var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; @@ -114,7 +114,7 @@ var activeTableTab = "activeTableTab"; @InterfaceAudience.Private -public class ReplicationSourceManager +public class ReplicationSourceManager extends https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true; title="class or interface in java.lang">Object implements ReplicationListener This class is responsible to manage all the replication sources. There are two classes of @@ -476,12 +476,19 @@ implements +private void +interruptOrAbortWhenFail(ReplicationSourceManager.ReplicationQueueOperationop) +Refresh replication source will terminate the old source first, then the source thread will be + interrupted. + + + void join() Terminate the replication on this region server - + void logPositionAndCleanOldLogs(https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true; title="class or interface in java.lang">StringqueueId, booleanqueueRecovered, @@ -489,50 +496,50 @@ implements This method will log the current position to storage. - + void postLogRoll(org.apache.hadoop.fs.PathnewLog) - + void preLogRoll(org.apache.hadoop.fs.PathnewLog) - + void refreshSources(https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true; title="class or interface in java.lang">StringpeerId) Close the previous replication sources of this peer id and open new sources to trigger the new replication state changes or new replication config changes. - + void regionServerRemoved(https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true; title="class or interface in java.lang">Stringregionserver) A region server has been removed from the local cluster - + void removePeer(https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true; title="class or interface in java.lang">StringpeerId) 1. - + (package private) void removeRecoveredSource(ReplicationSourceInterfacesrc) Clear the metrics and related replication queue of the specified old source - + (package private) void removeSource(ReplicationSourceInterfacesrc) Clear the metrics and related replication queue of the specified old source - + private void throwIOExceptionWhenFail(ReplicationSourceManager.ReplicationQueueOperationop) - + private void transferQueues(ServerNamedeadRS) Transfer all the queues of the specified to this region server. @@ -566,7 +573,7 @@ implements LOG -private static finalorg.slf4j.Logger LOG +private static finalorg.slf4j.Logger LOG @@ -575,7 +582,7 @@ implements sources -private finalhttps://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true; title="class or interface in java.util.concurrent">ConcurrentMaphttps://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true; title="class or interface in java.lang">String,ReplicationSourceInterface sources +private finalhttps://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true; title="class or interface in java.util.concurrent">ConcurrentMaphttps://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true; title="class or interface in java.lang">String,ReplicationSourceInterface sources @@ -584,7 +591,7 @@ implements oldsources -private finalhttps://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true;
[1/8] hbase-site git commit: Published site at ec66434380aee62289ccf7b173d765bbe7083718.
Repository: hbase-site Updated Branches: refs/heads/asf-site ddf69c75f -> bb78f24d2 http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bb78f24d/devapidocs/src-html/org/apache/hadoop/hbase/zookeeper/ZKWatcher.html -- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/zookeeper/ZKWatcher.html b/devapidocs/src-html/org/apache/hadoop/hbase/zookeeper/ZKWatcher.html index bbbd959..0d9db4e 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/zookeeper/ZKWatcher.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/zookeeper/ZKWatcher.html @@ -615,53 +615,55 @@ 607 public void interruptedException(InterruptedException ie) throws KeeperException { 608interruptedExceptionNoThrow(ie, true); 609// Throw a system error exception to let upper level handle it -610throw new KeeperException.SystemErrorException(); -611 } -612 -613 /** -614 * Log the InterruptedException and interrupt current thread -615 * @param ie The IterruptedException to log -616 * @param throwLater Whether we will throw the exception latter -617 */ -618 public void interruptedExceptionNoThrow(InterruptedException ie, boolean throwLater) { -619LOG.debug(prefix("Received InterruptedException, will interrupt current thread" -620+ (throwLater ? " and rethrow a SystemErrorException" : "")), -621 ie); -622// At least preserve interrupt. -623Thread.currentThread().interrupt(); -624 } -625 -626 /** -627 * Close the connection to ZooKeeper. -628 * -629 */ -630 @Override -631 public void close() { -632try { -633 recoverableZooKeeper.close(); -634} catch (InterruptedException e) { -635 Thread.currentThread().interrupt(); -636} -637 } -638 -639 public Configuration getConfiguration() { -640return conf; -641 } -642 -643 @Override -644 public void abort(String why, Throwable e) { -645if (this.abortable != null) { -646 this.abortable.abort(why, e); -647} else { -648 this.aborted = true; -649} -650 } -651 -652 @Override -653 public boolean isAborted() { -654return this.abortable == null? this.aborted: this.abortable.isAborted(); -655 } -656} +610KeeperException keeperException = new KeeperException.SystemErrorException(); +611keeperException.initCause(ie); +612throw keeperException; +613 } +614 +615 /** +616 * Log the InterruptedException and interrupt current thread +617 * @param ie The IterruptedException to log +618 * @param throwLater Whether we will throw the exception latter +619 */ +620 public void interruptedExceptionNoThrow(InterruptedException ie, boolean throwLater) { +621LOG.debug(prefix("Received InterruptedException, will interrupt current thread" +622+ (throwLater ? " and rethrow a SystemErrorException" : "")), +623 ie); +624// At least preserve interrupt. +625Thread.currentThread().interrupt(); +626 } +627 +628 /** +629 * Close the connection to ZooKeeper. +630 * +631 */ +632 @Override +633 public void close() { +634try { +635 recoverableZooKeeper.close(); +636} catch (InterruptedException e) { +637 Thread.currentThread().interrupt(); +638} +639 } +640 +641 public Configuration getConfiguration() { +642return conf; +643 } +644 +645 @Override +646 public void abort(String why, Throwable e) { +647if (this.abortable != null) { +648 this.abortable.abort(why, e); +649} else { +650 this.aborted = true; +651} +652 } +653 +654 @Override +655 public boolean isAborted() { +656return this.abortable == null? this.aborted: this.abortable.isAborted(); +657 } +658} http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bb78f24d/downloads.html -- diff --git a/downloads.html b/downloads.html index 6752774..f1c834c 100644 --- a/downloads.html +++ b/downloads.html @@ -7,7 +7,7 @@ - + Apache HBase Apache HBase Downloads @@ -366,7 +366,7 @@ under the License. --> https://www.apache.org/;>The Apache Software Foundation. All rights reserved. - Last Published: 2018-06-12 + Last Published: 2018-06-13 http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bb78f24d/export_control.html -- diff --git a/export_control.html b/export_control.html index a123018..94b223a 100644 --- a/export_control.html +++ b/export_control.html @@ -7,7 +7,7 @@ - + Apache HBase Export Control @@ -331,7 +331,7 @@ for more details. https://www.apache.org/;>The Apache Software Foundation. All rights reserved. -
[8/8] hbase-site git commit: Published site at ec66434380aee62289ccf7b173d765bbe7083718.
Published site at ec66434380aee62289ccf7b173d765bbe7083718. Project: http://git-wip-us.apache.org/repos/asf/hbase-site/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase-site/commit/bb78f24d Tree: http://git-wip-us.apache.org/repos/asf/hbase-site/tree/bb78f24d Diff: http://git-wip-us.apache.org/repos/asf/hbase-site/diff/bb78f24d Branch: refs/heads/asf-site Commit: bb78f24d29de5c1f0b0f5c9b72a6b1167e317d64 Parents: ddf69c7 Author: jenkins Authored: Wed Jun 13 14:49:24 2018 + Committer: jenkins Committed: Wed Jun 13 14:49:24 2018 + -- acid-semantics.html |4 +- apache_hbase_reference_guide.pdf|4 +- book.html |2 +- bulk-loads.html |4 +- checkstyle-aggregate.html | 12 +- coc.html|4 +- dependencies.html |4 +- dependency-convergence.html |4 +- dependency-info.html|4 +- dependency-management.html |4 +- devapidocs/constant-values.html |6 +- devapidocs/index-all.html |5 + .../hadoop/hbase/backup/package-tree.html |2 +- .../hadoop/hbase/client/package-tree.html | 24 +- .../hadoop/hbase/executor/package-tree.html |2 +- .../hadoop/hbase/filter/package-tree.html | 10 +- .../hadoop/hbase/io/hfile/package-tree.html |2 +- .../apache/hadoop/hbase/ipc/package-tree.html |2 +- .../hadoop/hbase/mapreduce/package-tree.html|2 +- .../hbase/master/balancer/package-tree.html |2 +- .../hadoop/hbase/master/package-tree.html |4 +- .../hbase/master/procedure/package-tree.html|4 +- .../org/apache/hadoop/hbase/package-tree.html | 12 +- .../hadoop/hbase/procedure2/package-tree.html |4 +- .../hadoop/hbase/quotas/package-tree.html |6 +- .../hadoop/hbase/regionserver/package-tree.html | 18 +- .../regionserver/querymatcher/package-tree.html |2 +- .../hbase/regionserver/wal/package-tree.html|2 +- .../ReplicationSource.LogsComparator.html |8 +- .../regionserver/ReplicationSource.html | 22 +- ...icationSourceManager.NodeFailoverWorker.html | 12 +- ...SourceManager.ReplicationQueueOperation.html |4 +- .../regionserver/ReplicationSourceManager.html | 158 +- ...SourceManager.ReplicationQueueOperation.html |7 + .../replication/regionserver/package-tree.html |2 +- .../hadoop/hbase/rest/model/package-tree.html |2 +- .../hbase/security/access/package-tree.html |2 +- .../hadoop/hbase/security/package-tree.html |4 +- .../hadoop/hbase/thrift/package-tree.html |2 +- .../apache/hadoop/hbase/util/package-tree.html |8 +- .../hadoop/hbase/zookeeper/ZKWatcher.html | 10 +- .../org/apache/hadoop/hbase/Version.html|6 +- .../ReplicationSource.LogsComparator.html | 260 +-- .../regionserver/ReplicationSource.html | 260 +-- ...icationSourceManager.NodeFailoverWorker.html | 1676 +- ...SourceManager.ReplicationQueueOperation.html | 1676 +- .../regionserver/ReplicationSourceManager.html | 1676 +- .../hadoop/hbase/zookeeper/ZKWatcher.html | 96 +- downloads.html |4 +- export_control.html |4 +- index.html |4 +- integration.html|4 +- issue-tracking.html |4 +- license.html|4 +- mail-lists.html |4 +- metrics.html|4 +- old_news.html |4 +- plugin-management.html |4 +- plugins.html|4 +- poweredbyhbase.html |4 +- project-info.html |4 +- project-reports.html|4 +- project-summary.html|4 +- pseudo-distributed.html |4 +- replication.html|4 +- resources.html |4 +- source-repository.html |4 +- sponsors.html |4 +- supportingprojects.html |4 +- team-list.html |4 +- 70 files changed, 3133 insertions(+), 3001 deletions(-) --
[4/8] hbase-site git commit: Published site at ec66434380aee62289ccf7b173d765bbe7083718.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bb78f24d/devapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.NodeFailoverWorker.html -- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.NodeFailoverWorker.html b/devapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.NodeFailoverWorker.html index 094b592..5dc41f3 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.NodeFailoverWorker.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.NodeFailoverWorker.html @@ -67,840 +67,860 @@ 059import org.apache.hadoop.hbase.util.Pair; 060import org.apache.hadoop.hbase.wal.AbstractFSWALProvider; 061import org.apache.yetus.audience.InterfaceAudience; -062import org.slf4j.Logger; -063import org.slf4j.LoggerFactory; -064 -065import org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting; -066import org.apache.hbase.thirdparty.com.google.common.util.concurrent.ThreadFactoryBuilder; -067 -068/** -069 * This class is responsible to manage all the replication sources. There are two classes of -070 * sources: -071 * ul -072 * liNormal sources are persistent and one per peer cluster/li -073 * liOld sources are recovered from a failed region server and our only goal is to finish -074 * replicating the WAL queue it had/li -075 * /ul -076 * p -077 * When a region server dies, this class uses a watcher to get notified and it tries to grab a lock -078 * in order to transfer all the queues in a local old source. -079 * p -080 * Synchronization specification: -081 * ul -082 * liNo need synchronized on {@link #sources}. {@link #sources} is a ConcurrentHashMap and there -083 * is a Lock for peer id in {@link PeerProcedureHandlerImpl}. So there is no race for peer -084 * operations./li -085 * liNeed synchronized on {@link #walsById}. There are four methods which modify it, -086 * {@link #addPeer(String)}, {@link #removePeer(String)}, -087 * {@link #cleanOldLogs(NavigableSet, String, boolean, String)} and {@link #preLogRoll(Path)}. -088 * {@link #walsById} is a ConcurrentHashMap and there is a Lock for peer id in -089 * {@link PeerProcedureHandlerImpl}. So there is no race between {@link #addPeer(String)} and -090 * {@link #removePeer(String)}. {@link #cleanOldLogs(NavigableSet, String, boolean, String)} is -091 * called by {@link ReplicationSourceInterface}. So no race with {@link #addPeer(String)}. -092 * {@link #removePeer(String)} will terminate the {@link ReplicationSourceInterface} firstly, then -093 * remove the wals from {@link #walsById}. So no race with {@link #removePeer(String)}. The only -094 * case need synchronized is {@link #cleanOldLogs(NavigableSet, String, boolean, String)} and -095 * {@link #preLogRoll(Path)}./li -096 * liNo need synchronized on {@link #walsByIdRecoveredQueues}. There are three methods which -097 * modify it, {@link #removePeer(String)} , -098 * {@link #cleanOldLogs(NavigableSet, String, boolean, String)} and -099 * {@link ReplicationSourceManager.NodeFailoverWorker#run()}. -100 * {@link #cleanOldLogs(NavigableSet, String, boolean, String)} is called by -101 * {@link ReplicationSourceInterface}. {@link #removePeer(String)} will terminate the -102 * {@link ReplicationSourceInterface} firstly, then remove the wals from -103 * {@link #walsByIdRecoveredQueues}. And {@link ReplicationSourceManager.NodeFailoverWorker#run()} -104 * will add the wals to {@link #walsByIdRecoveredQueues} firstly, then start up a -105 * {@link ReplicationSourceInterface}. So there is no race here. For -106 * {@link ReplicationSourceManager.NodeFailoverWorker#run()} and {@link #removePeer(String)}, there -107 * is already synchronized on {@link #oldsources}. So no need synchronized on -108 * {@link #walsByIdRecoveredQueues}./li -109 * liNeed synchronized on {@link #latestPaths} to avoid the new open source miss new log./li -110 * liNeed synchronized on {@link #oldsources} to avoid adding recovered source for the -111 * to-be-removed peer./li -112 * /ul -113 */ -114@InterfaceAudience.Private -115public class ReplicationSourceManager implements ReplicationListener { -116 private static final Logger LOG = LoggerFactory.getLogger(ReplicationSourceManager.class); -117 // all the sources that read this RS's logs and every peer only has one replication source -118 private final ConcurrentMapString, ReplicationSourceInterface sources; -119 // List of all the sources we got from died RSs -120 private final ListReplicationSourceInterface oldsources; -121 private final ReplicationQueueStorage queueStorage; -122 private final ReplicationTracker replicationTracker; -123 private final ReplicationPeers replicationPeers; -124 // UUID for this
[5/8] hbase-site git commit: Published site at ec66434380aee62289ccf7b173d765bbe7083718.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bb78f24d/devapidocs/org/apache/hadoop/hbase/util/package-tree.html -- diff --git a/devapidocs/org/apache/hadoop/hbase/util/package-tree.html b/devapidocs/org/apache/hadoop/hbase/util/package-tree.html index 596cffe..7ee6a13 100644 --- a/devapidocs/org/apache/hadoop/hbase/util/package-tree.html +++ b/devapidocs/org/apache/hadoop/hbase/util/package-tree.html @@ -532,14 +532,14 @@ java.lang.https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true; title="class or interface in java.lang">EnumE (implements java.lang.https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true; title="class or interface in java.lang">ComparableT, java.io.https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true; title="class or interface in java.io">Serializable) +org.apache.hadoop.hbase.util.PoolMap.PoolType org.apache.hadoop.hbase.util.Bytes.LexicographicalComparerHolder.UnsafeComparer (implements org.apache.hadoop.hbase.util.Bytes.ComparerT) -org.apache.hadoop.hbase.util.HBaseFsck.ErrorReporter.ERROR_CODE +org.apache.hadoop.hbase.util.Bytes.LexicographicalComparerHolder.PureJavaComparer (implements org.apache.hadoop.hbase.util.Bytes.ComparerT) org.apache.hadoop.hbase.util.PrettyPrinter.Unit +org.apache.hadoop.hbase.util.HBaseFsck.ErrorReporter.ERROR_CODE +org.apache.hadoop.hbase.util.ChecksumType org.apache.hadoop.hbase.util.Order org.apache.hadoop.hbase.util.IdReadWriteLock.ReferenceType -org.apache.hadoop.hbase.util.ChecksumType -org.apache.hadoop.hbase.util.PoolMap.PoolType -org.apache.hadoop.hbase.util.Bytes.LexicographicalComparerHolder.PureJavaComparer (implements org.apache.hadoop.hbase.util.Bytes.ComparerT) http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bb78f24d/devapidocs/org/apache/hadoop/hbase/zookeeper/ZKWatcher.html -- diff --git a/devapidocs/org/apache/hadoop/hbase/zookeeper/ZKWatcher.html b/devapidocs/org/apache/hadoop/hbase/zookeeper/ZKWatcher.html index c4df8e7..62a3538 100644 --- a/devapidocs/org/apache/hadoop/hbase/zookeeper/ZKWatcher.html +++ b/devapidocs/org/apache/hadoop/hbase/zookeeper/ZKWatcher.html @@ -1017,7 +1017,7 @@ implements org.apache.zookeeper.Watcher, interruptedExceptionNoThrow -publicvoidinterruptedExceptionNoThrow(https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true; title="class or interface in java.lang">InterruptedExceptionie, +publicvoidinterruptedExceptionNoThrow(https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true; title="class or interface in java.lang">InterruptedExceptionie, booleanthrowLater) Log the InterruptedException and interrupt current thread @@ -1033,7 +1033,7 @@ implements org.apache.zookeeper.Watcher, close -publicvoidclose() +publicvoidclose() Close the connection to ZooKeeper. Specified by: @@ -1049,7 +1049,7 @@ implements org.apache.zookeeper.Watcher, getConfiguration -publicorg.apache.hadoop.conf.ConfigurationgetConfiguration() +publicorg.apache.hadoop.conf.ConfigurationgetConfiguration() @@ -1058,7 +1058,7 @@ implements org.apache.zookeeper.Watcher, abort -publicvoidabort(https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true; title="class or interface in java.lang">Stringwhy, +publicvoidabort(https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true; title="class or interface in java.lang">Stringwhy, https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true; title="class or interface in java.lang">Throwablee) Description copied from interface:Abortable Abort the server or client. @@ -1077,7 +1077,7 @@ implements org.apache.zookeeper.Watcher, isAborted -publicbooleanisAborted() +publicbooleanisAborted() Description copied from interface:Abortable Check if the server or client was aborted. http://git-wip-us.apache.org/repos/asf/hbase-site/blob/bb78f24d/devapidocs/src-html/org/apache/hadoop/hbase/Version.html -- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html index 220ff10..45aaf8a 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html @@ -16,11 +16,11 @@ 008@InterfaceAudience.Private 009public class Version { 010 public static final String version = "3.0.0-SNAPSHOT"; -011 public static final String revision = "edf60b965be903f205ec689b59c55229e0cb1dbf"; +011 public static final String revision = "ec66434380aee62289ccf7b173d765bbe7083718"; 012 public static final String user =
hbase git commit: HBASE-20561 The way we stop a ReplicationSource may cause the RS down
Repository: hbase Updated Branches: refs/heads/branch-2 0a6aec498 -> 075523dd1 HBASE-20561 The way we stop a ReplicationSource may cause the RS down Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/075523dd Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/075523dd Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/075523dd Branch: refs/heads/branch-2 Commit: 075523dd1eabb027f3268f51a4aa0f17113e58d3 Parents: 0a6aec4 Author: Guanghao Zhang Authored: Tue Jun 12 22:19:39 2018 +0800 Committer: Guanghao Zhang Committed: Wed Jun 13 18:05:27 2018 +0800 -- .../regionserver/ReplicationSource.java | 24 +++-- .../regionserver/ReplicationSourceManager.java | 28 +--- .../hadoop/hbase/zookeeper/ZKWatcher.java | 4 ++- 3 files changed, 49 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/075523dd/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java index d21d83c..b63712b 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java @@ -499,9 +499,29 @@ public class ReplicationSource implements ReplicationSourceInterface { Collection workers = workerThreads.values(); for (ReplicationSourceShipper worker : workers) { worker.stopWorker(); - worker.entryReader.interrupt(); - worker.interrupt(); + worker.entryReader.setReaderRunning(false); } + +for (ReplicationSourceShipper worker : workers) { + if (worker.isAlive() || worker.entryReader.isAlive()) { +try { + // Wait worker to stop + Thread.sleep(this.sleepForRetries); +} catch (InterruptedException e) { + LOG.info("Interrupted while waiting " + worker.getName() + " to stop"); + Thread.currentThread().interrupt(); +} +// If worker still is alive after waiting, interrupt it +if (worker.isAlive()) { + worker.interrupt(); +} +// If entry reader is alive after waiting, interrupt it +if (worker.entryReader.isAlive()) { + worker.entryReader.interrupt(); +} + } +} + if (this.replicationEndpoint != null) { this.replicationEndpoint.stop(); } http://git-wip-us.apache.org/repos/asf/hbase/blob/075523dd/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.java index 9b4a22c..a370867 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.java @@ -59,6 +59,7 @@ import org.apache.hadoop.hbase.replication.ReplicationTracker; import org.apache.hadoop.hbase.util.Pair; import org.apache.hadoop.hbase.wal.AbstractFSWALProvider; import org.apache.yetus.audience.InterfaceAudience; +import org.apache.zookeeper.KeeperException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -449,6 +450,24 @@ public class ReplicationSourceManager implements ReplicationListener { void exec() throws ReplicationException; } + /** + * Refresh replication source will terminate the old source first, then the source thread will be + * interrupted. Need to handle it instead of abort the region server. + */ + private void interruptOrAbortWhenFail(ReplicationQueueOperation op) { +try { + op.exec(); +} catch (ReplicationException e) { + if (e.getCause() != null && e.getCause() instanceof KeeperException.SystemErrorException + && e.getCause().getCause() != null && e.getCause() + .getCause() instanceof InterruptedException) { +throw new RuntimeException( +"Thread is interrupted, the replication source may be terminated"); + } + server.abort("Failed to operate on replication queue", e); +} + } + private void abortWhenFail(ReplicationQueueOperation op) { try { op.exec(); @@ -484,8 +503,9 @@ public class
hbase git commit: HBASE-20561 The way we stop a ReplicationSource may cause the RS down
Repository: hbase Updated Branches: refs/heads/master 8648af07d -> ec6643438 HBASE-20561 The way we stop a ReplicationSource may cause the RS down Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/ec664343 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/ec664343 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/ec664343 Branch: refs/heads/master Commit: ec66434380aee62289ccf7b173d765bbe7083718 Parents: 8648af0 Author: Guanghao Zhang Authored: Tue Jun 12 22:19:39 2018 +0800 Committer: Guanghao Zhang Committed: Wed Jun 13 17:58:59 2018 +0800 -- .../regionserver/ReplicationSource.java | 24 +++-- .../regionserver/ReplicationSourceManager.java | 28 +--- .../hadoop/hbase/zookeeper/ZKWatcher.java | 4 ++- 3 files changed, 49 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/ec664343/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java index d21d83c..b63712b 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java @@ -499,9 +499,29 @@ public class ReplicationSource implements ReplicationSourceInterface { Collection workers = workerThreads.values(); for (ReplicationSourceShipper worker : workers) { worker.stopWorker(); - worker.entryReader.interrupt(); - worker.interrupt(); + worker.entryReader.setReaderRunning(false); } + +for (ReplicationSourceShipper worker : workers) { + if (worker.isAlive() || worker.entryReader.isAlive()) { +try { + // Wait worker to stop + Thread.sleep(this.sleepForRetries); +} catch (InterruptedException e) { + LOG.info("Interrupted while waiting " + worker.getName() + " to stop"); + Thread.currentThread().interrupt(); +} +// If worker still is alive after waiting, interrupt it +if (worker.isAlive()) { + worker.interrupt(); +} +// If entry reader is alive after waiting, interrupt it +if (worker.entryReader.isAlive()) { + worker.entryReader.interrupt(); +} + } +} + if (this.replicationEndpoint != null) { this.replicationEndpoint.stop(); } http://git-wip-us.apache.org/repos/asf/hbase/blob/ec664343/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.java index 9b4a22c..a370867 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.java @@ -59,6 +59,7 @@ import org.apache.hadoop.hbase.replication.ReplicationTracker; import org.apache.hadoop.hbase.util.Pair; import org.apache.hadoop.hbase.wal.AbstractFSWALProvider; import org.apache.yetus.audience.InterfaceAudience; +import org.apache.zookeeper.KeeperException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -449,6 +450,24 @@ public class ReplicationSourceManager implements ReplicationListener { void exec() throws ReplicationException; } + /** + * Refresh replication source will terminate the old source first, then the source thread will be + * interrupted. Need to handle it instead of abort the region server. + */ + private void interruptOrAbortWhenFail(ReplicationQueueOperation op) { +try { + op.exec(); +} catch (ReplicationException e) { + if (e.getCause() != null && e.getCause() instanceof KeeperException.SystemErrorException + && e.getCause().getCause() != null && e.getCause() + .getCause() instanceof InterruptedException) { +throw new RuntimeException( +"Thread is interrupted, the replication source may be terminated"); + } + server.abort("Failed to operate on replication queue", e); +} + } + private void abortWhenFail(ReplicationQueueOperation op) { try { op.exec(); @@ -484,8 +503,9 @@ public class