hbase git commit: HBASE-19965 Fix flaky TestAsyncRegionAdminApi; ADDENDUM do same to TestAsyncTableAdminAPI

2018-02-12 Thread stack
Repository: hbase
Updated Branches:
  refs/heads/master cf57ea15f -> b4622ffad


HBASE-19965 Fix flaky TestAsyncRegionAdminApi; ADDENDUM do same to 
TestAsyncTableAdminAPI


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

Branch: refs/heads/master
Commit: b4622ffad7011b3d29bce6376edb896de6df9f6e
Parents: cf57ea1
Author: Michael Stack 
Authored: Mon Feb 12 22:52:56 2018 -0800
Committer: Michael Stack 
Committed: Mon Feb 12 22:52:56 2018 -0800

--
 .../hbase/client/TestAsyncTableAdminApi.java| 249 +--
 .../hbase/client/TestAsyncTableAdminApi2.java   | 299 +++
 2 files changed, 301 insertions(+), 247 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/b4622ffa/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncTableAdminApi.java
--
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncTableAdminApi.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncTableAdminApi.java
index 597a3d7..a3129f8 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncTableAdminApi.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncTableAdminApi.java
@@ -30,11 +30,9 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
-import java.util.Set;
 import java.util.concurrent.CompletionException;
 import java.util.concurrent.ExecutionException;
 import java.util.regex.Pattern;
-import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hbase.AsyncMetaTableAccessor;
 import org.apache.hadoop.hbase.HBaseClassTestRule;
 import org.apache.hadoop.hbase.HConstants;
@@ -43,12 +41,9 @@ import org.apache.hadoop.hbase.ServerName;
 import org.apache.hadoop.hbase.TableName;
 import 
org.apache.hadoop.hbase.client.TableDescriptorBuilder.ModifyableTableDescriptor;
 import org.apache.hadoop.hbase.master.LoadBalancer;
-import org.apache.hadoop.hbase.master.MasterFileSystem;
 import org.apache.hadoop.hbase.testclassification.ClientTests;
 import org.apache.hadoop.hbase.testclassification.LargeTests;
 import org.apache.hadoop.hbase.util.Bytes;
-import org.apache.hadoop.hbase.util.FSTableDescriptors;
-import org.apache.hadoop.hbase.util.FSUtils;
 import org.junit.Assert;
 import org.junit.ClassRule;
 import org.junit.Test;
@@ -58,6 +53,8 @@ import org.junit.runners.Parameterized;
 
 /**
  * Class to test asynchronous table admin operations.
+ * @see TestAsyncTableAdminApi2 This test and it used to be joined it was 
taking longer than our
+ * ten minute timeout so they were split.
  */
 @RunWith(Parameterized.class)
 @Category({ LargeTests.class, ClientTests.class })
@@ -591,161 +588,6 @@ public class TestAsyncTableAdminApi extends 
TestAsyncAdminBase {
   }
 
   @Test
-  public void testDisableCatalogTable() throws Exception {
-try {
-  this.admin.disableTable(TableName.META_TABLE_NAME).join();
-  fail("Expected to throw ConstraintException");
-} catch (Exception e) {
-}
-// Before the fix for HBASE-6146, the below table creation was failing as 
the hbase:meta table
-// actually getting disabled by the disableTable() call.
-createTableWithDefaultConf(tableName);
-  }
-
-  @Test
-  public void testAddColumnFamily() throws Exception {
-// Create a table with two families
-TableDescriptorBuilder builder = 
TableDescriptorBuilder.newBuilder(tableName);
-builder.addColumnFamily(ColumnFamilyDescriptorBuilder.of(FAMILY_0));
-admin.createTable(builder.build()).join();
-admin.disableTable(tableName).join();
-// Verify the table descriptor
-verifyTableDescriptor(tableName, FAMILY_0);
-
-// Modify the table removing one family and verify the descriptor
-admin.addColumnFamily(tableName, 
ColumnFamilyDescriptorBuilder.of(FAMILY_1)).join();
-verifyTableDescriptor(tableName, FAMILY_0, FAMILY_1);
-  }
-
-  @Test
-  public void testAddSameColumnFamilyTwice() throws Exception {
-// Create a table with one families
-TableDescriptorBuilder builder = 
TableDescriptorBuilder.newBuilder(tableName);
-builder.addColumnFamily(ColumnFamilyDescriptorBuilder.of(FAMILY_0));
-admin.createTable(builder.build()).join();
-admin.disableTable(tableName).join();
-// Verify the table descriptor
-verifyTableDescriptor(tableName, FAMILY_0);
-
-// Modify the table removing one family and verify the descriptor
-admin.addColumnFamily(tableName, 
ColumnFamilyDescriptorBuilder.of(FAMILY_1)).join();
-verifyTableDescriptor(tableName, FAMILY_0, FAMILY_1);
-
-try {
- 

hbase git commit: HBASE-19965 Fix flaky TestAsyncRegionAdminApi; ADDENDUM do same to TestAsyncTableAdminAPI

2018-02-12 Thread stack
Repository: hbase
Updated Branches:
  refs/heads/branch-2 7104364a4 -> 5b95ea01d


HBASE-19965 Fix flaky TestAsyncRegionAdminApi; ADDENDUM do same to 
TestAsyncTableAdminAPI


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

Branch: refs/heads/branch-2
Commit: 5b95ea01dab379ce71adbf9d04bec69b3b8cd5ab
Parents: 7104364
Author: Michael Stack 
Authored: Mon Feb 12 22:52:56 2018 -0800
Committer: Michael Stack 
Committed: Mon Feb 12 22:53:29 2018 -0800

--
 .../hbase/client/TestAsyncTableAdminApi.java| 249 +--
 .../hbase/client/TestAsyncTableAdminApi2.java   | 299 +++
 2 files changed, 301 insertions(+), 247 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/5b95ea01/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncTableAdminApi.java
--
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncTableAdminApi.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncTableAdminApi.java
index 597a3d7..a3129f8 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncTableAdminApi.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncTableAdminApi.java
@@ -30,11 +30,9 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
-import java.util.Set;
 import java.util.concurrent.CompletionException;
 import java.util.concurrent.ExecutionException;
 import java.util.regex.Pattern;
-import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hbase.AsyncMetaTableAccessor;
 import org.apache.hadoop.hbase.HBaseClassTestRule;
 import org.apache.hadoop.hbase.HConstants;
@@ -43,12 +41,9 @@ import org.apache.hadoop.hbase.ServerName;
 import org.apache.hadoop.hbase.TableName;
 import 
org.apache.hadoop.hbase.client.TableDescriptorBuilder.ModifyableTableDescriptor;
 import org.apache.hadoop.hbase.master.LoadBalancer;
-import org.apache.hadoop.hbase.master.MasterFileSystem;
 import org.apache.hadoop.hbase.testclassification.ClientTests;
 import org.apache.hadoop.hbase.testclassification.LargeTests;
 import org.apache.hadoop.hbase.util.Bytes;
-import org.apache.hadoop.hbase.util.FSTableDescriptors;
-import org.apache.hadoop.hbase.util.FSUtils;
 import org.junit.Assert;
 import org.junit.ClassRule;
 import org.junit.Test;
@@ -58,6 +53,8 @@ import org.junit.runners.Parameterized;
 
 /**
  * Class to test asynchronous table admin operations.
+ * @see TestAsyncTableAdminApi2 This test and it used to be joined it was 
taking longer than our
+ * ten minute timeout so they were split.
  */
 @RunWith(Parameterized.class)
 @Category({ LargeTests.class, ClientTests.class })
@@ -591,161 +588,6 @@ public class TestAsyncTableAdminApi extends 
TestAsyncAdminBase {
   }
 
   @Test
-  public void testDisableCatalogTable() throws Exception {
-try {
-  this.admin.disableTable(TableName.META_TABLE_NAME).join();
-  fail("Expected to throw ConstraintException");
-} catch (Exception e) {
-}
-// Before the fix for HBASE-6146, the below table creation was failing as 
the hbase:meta table
-// actually getting disabled by the disableTable() call.
-createTableWithDefaultConf(tableName);
-  }
-
-  @Test
-  public void testAddColumnFamily() throws Exception {
-// Create a table with two families
-TableDescriptorBuilder builder = 
TableDescriptorBuilder.newBuilder(tableName);
-builder.addColumnFamily(ColumnFamilyDescriptorBuilder.of(FAMILY_0));
-admin.createTable(builder.build()).join();
-admin.disableTable(tableName).join();
-// Verify the table descriptor
-verifyTableDescriptor(tableName, FAMILY_0);
-
-// Modify the table removing one family and verify the descriptor
-admin.addColumnFamily(tableName, 
ColumnFamilyDescriptorBuilder.of(FAMILY_1)).join();
-verifyTableDescriptor(tableName, FAMILY_0, FAMILY_1);
-  }
-
-  @Test
-  public void testAddSameColumnFamilyTwice() throws Exception {
-// Create a table with one families
-TableDescriptorBuilder builder = 
TableDescriptorBuilder.newBuilder(tableName);
-builder.addColumnFamily(ColumnFamilyDescriptorBuilder.of(FAMILY_0));
-admin.createTable(builder.build()).join();
-admin.disableTable(tableName).join();
-// Verify the table descriptor
-verifyTableDescriptor(tableName, FAMILY_0);
-
-// Modify the table removing one family and verify the descriptor
-admin.addColumnFamily(tableName, 
ColumnFamilyDescriptorBuilder.of(FAMILY_1)).join();
-verifyTableDescriptor(tableName, FAMILY_0, FAMILY_1);
-
-try 

hbase git commit: HBASE-19965 Fix flaky TestAsyncRegionAdminApi

2018-02-12 Thread stack
Repository: hbase
Updated Branches:
  refs/heads/master f8c3d4568 -> cf57ea15f


HBASE-19965 Fix flaky TestAsyncRegionAdminApi


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

Branch: refs/heads/master
Commit: cf57ea15f1044d69fcfc8edee3c6f710ed78a7e0
Parents: f8c3d45
Author: Michael Stack 
Authored: Mon Feb 12 22:24:50 2018 -0800
Committer: Michael Stack 
Committed: Mon Feb 12 22:27:12 2018 -0800

--
 .../hbase/client/TestAsyncRegionAdminApi.java   | 195 +--
 .../hbase/client/TestAsyncRegionAdminApi2.java  | 241 +++
 2 files changed, 245 insertions(+), 191 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/cf57ea15/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.java
--
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.java
index b9afb68..fbb87bb 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.java
@@ -17,7 +17,6 @@
  */
 package org.apache.hadoop.hbase.client;
 
-import static org.apache.hadoop.hbase.TableName.META_TABLE_NAME;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotEquals;
@@ -27,14 +26,10 @@ import static org.junit.Assert.fail;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Optional;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
-import org.apache.hadoop.hbase.AsyncMetaTableAccessor;
 import org.apache.hadoop.hbase.HBaseClassTestRule;
-import org.apache.hadoop.hbase.HConstants;
-import org.apache.hadoop.hbase.HRegionLocation;
 import org.apache.hadoop.hbase.ServerName;
 import org.apache.hadoop.hbase.TableName;
 import org.apache.hadoop.hbase.master.HMaster;
@@ -60,30 +55,17 @@ import org.junit.runners.Parameterized;
 
 /**
  * Class to test asynchronous region admin operations.
+ * @see TestAsyncRegionAdminApi2 This test and it used to be joined it was 
taking longer than our
+ * ten minute timeout so they were split.
  */
 @RunWith(Parameterized.class)
 @Category({ LargeTests.class, ClientTests.class })
 public class TestAsyncRegionAdminApi extends TestAsyncAdminBase {
-
   @ClassRule
   public static final HBaseClassTestRule CLASS_RULE =
   HBaseClassTestRule.forClass(TestAsyncRegionAdminApi.class);
 
   @Test
-  public void testGetRegionLocation() throws Exception {
-RawAsyncHBaseAdmin rawAdmin = (RawAsyncHBaseAdmin) ASYNC_CONN.getAdmin();
-TEST_UTIL.createMultiRegionTable(tableName, HConstants.CATALOG_FAMILY);
-AsyncTableRegionLocator locator = ASYNC_CONN.getRegionLocator(tableName);
-HRegionLocation regionLocation = 
locator.getRegionLocation(Bytes.toBytes("mmm")).get();
-RegionInfo region = regionLocation.getRegion();
-byte[] regionName = regionLocation.getRegion().getRegionName();
-HRegionLocation location = rawAdmin.getRegionLocation(regionName).get();
-assertTrue(Bytes.equals(regionName, location.getRegion().getRegionName()));
-location = 
rawAdmin.getRegionLocation(region.getEncodedNameAsBytes()).get();
-assertTrue(Bytes.equals(regionName, location.getRegion().getRegionName()));
-  }
-
-  @Test
   public void testAssignRegionAndUnassignRegion() throws Exception {
 createTableWithDefaultConf(tableName);
 
@@ -259,175 +241,6 @@ public class TestAsyncRegionAdminApi extends 
TestAsyncAdminBase {
 assertEquals(0, 
regionServer.getOnlineRegion(hri.getRegionName()).getMemStoreSize());
   }
 
-  @Test
-  public void testSplitSwitch() throws Exception {
-createTableWithDefaultConf(tableName);
-byte[][] families = { FAMILY };
-final int rows = 1;
-loadData(tableName, families, rows);
-
-AsyncTable metaTable = 
ASYNC_CONN.getTable(META_TABLE_NAME);
-List regionLocations =
-AsyncMetaTableAccessor.getTableHRegionLocations(metaTable, 
Optional.of(tableName)).get();
-int originalCount = regionLocations.size();
-
-initSplitMergeSwitch();
-assertTrue(admin.splitSwitch(false).get());
-try {
-  admin.split(tableName, Bytes.toBytes(rows / 2)).join();
-} catch (Exception e){
-  //Expected
-}
-int count = admin.getRegions(tableName).get().size();
-assertTrue(originalCount == count);
-
-assertFa

hbase git commit: HBASE-19965 Fix flaky TestAsyncRegionAdminApi

2018-02-12 Thread stack
Repository: hbase
Updated Branches:
  refs/heads/branch-2 6f35b5393 -> 7104364a4


HBASE-19965 Fix flaky TestAsyncRegionAdminApi


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

Branch: refs/heads/branch-2
Commit: 7104364a4d220830457feb7e0cd4c7f308071cd2
Parents: 6f35b53
Author: Michael Stack 
Authored: Mon Feb 12 22:24:50 2018 -0800
Committer: Michael Stack 
Committed: Mon Feb 12 22:24:50 2018 -0800

--
 .../hbase/client/TestAsyncRegionAdminApi.java   | 195 +--
 .../hbase/client/TestAsyncRegionAdminApi2.java  | 241 +++
 2 files changed, 245 insertions(+), 191 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/7104364a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.java
--
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.java
index b9afb68..fbb87bb 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.java
@@ -17,7 +17,6 @@
  */
 package org.apache.hadoop.hbase.client;
 
-import static org.apache.hadoop.hbase.TableName.META_TABLE_NAME;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotEquals;
@@ -27,14 +26,10 @@ import static org.junit.Assert.fail;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Optional;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
-import org.apache.hadoop.hbase.AsyncMetaTableAccessor;
 import org.apache.hadoop.hbase.HBaseClassTestRule;
-import org.apache.hadoop.hbase.HConstants;
-import org.apache.hadoop.hbase.HRegionLocation;
 import org.apache.hadoop.hbase.ServerName;
 import org.apache.hadoop.hbase.TableName;
 import org.apache.hadoop.hbase.master.HMaster;
@@ -60,30 +55,17 @@ import org.junit.runners.Parameterized;
 
 /**
  * Class to test asynchronous region admin operations.
+ * @see TestAsyncRegionAdminApi2 This test and it used to be joined it was 
taking longer than our
+ * ten minute timeout so they were split.
  */
 @RunWith(Parameterized.class)
 @Category({ LargeTests.class, ClientTests.class })
 public class TestAsyncRegionAdminApi extends TestAsyncAdminBase {
-
   @ClassRule
   public static final HBaseClassTestRule CLASS_RULE =
   HBaseClassTestRule.forClass(TestAsyncRegionAdminApi.class);
 
   @Test
-  public void testGetRegionLocation() throws Exception {
-RawAsyncHBaseAdmin rawAdmin = (RawAsyncHBaseAdmin) ASYNC_CONN.getAdmin();
-TEST_UTIL.createMultiRegionTable(tableName, HConstants.CATALOG_FAMILY);
-AsyncTableRegionLocator locator = ASYNC_CONN.getRegionLocator(tableName);
-HRegionLocation regionLocation = 
locator.getRegionLocation(Bytes.toBytes("mmm")).get();
-RegionInfo region = regionLocation.getRegion();
-byte[] regionName = regionLocation.getRegion().getRegionName();
-HRegionLocation location = rawAdmin.getRegionLocation(regionName).get();
-assertTrue(Bytes.equals(regionName, location.getRegion().getRegionName()));
-location = 
rawAdmin.getRegionLocation(region.getEncodedNameAsBytes()).get();
-assertTrue(Bytes.equals(regionName, location.getRegion().getRegionName()));
-  }
-
-  @Test
   public void testAssignRegionAndUnassignRegion() throws Exception {
 createTableWithDefaultConf(tableName);
 
@@ -259,175 +241,6 @@ public class TestAsyncRegionAdminApi extends 
TestAsyncAdminBase {
 assertEquals(0, 
regionServer.getOnlineRegion(hri.getRegionName()).getMemStoreSize());
   }
 
-  @Test
-  public void testSplitSwitch() throws Exception {
-createTableWithDefaultConf(tableName);
-byte[][] families = { FAMILY };
-final int rows = 1;
-loadData(tableName, families, rows);
-
-AsyncTable metaTable = 
ASYNC_CONN.getTable(META_TABLE_NAME);
-List regionLocations =
-AsyncMetaTableAccessor.getTableHRegionLocations(metaTable, 
Optional.of(tableName)).get();
-int originalCount = regionLocations.size();
-
-initSplitMergeSwitch();
-assertTrue(admin.splitSwitch(false).get());
-try {
-  admin.split(tableName, Bytes.toBytes(rows / 2)).join();
-} catch (Exception e){
-  //Expected
-}
-int count = admin.getRegions(tableName).get().size();
-assertTrue(originalCount == count);
-
-asse

hbase git commit: HBASE-19960 Doc test timeouts and test categories in hbase2

2018-02-12 Thread stack
Repository: hbase
Updated Branches:
  refs/heads/master 24bed6b3f -> f8c3d4568


HBASE-19960 Doc test timeouts and test categories in hbase2


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

Branch: refs/heads/master
Commit: f8c3d4568e02ba7c65d0ff82a644e8757c55ff7b
Parents: 24bed6b
Author: Michael Stack 
Authored: Mon Feb 12 20:52:01 2018 -0800
Committer: Michael Stack 
Committed: Mon Feb 12 20:53:42 2018 -0800

--
 .../hbase/testclassification/LargeTests.java| 19 ++---
 .../hbase/testclassification/MediumTests.java   | 16 ++--
 .../hbase/testclassification/SmallTests.java| 16 ++--
 src/main/asciidoc/_chapters/developer.adoc  | 89 ++--
 4 files changed, 86 insertions(+), 54 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/f8c3d456/hbase-annotations/src/test/java/org/apache/hadoop/hbase/testclassification/LargeTests.java
--
diff --git 
a/hbase-annotations/src/test/java/org/apache/hadoop/hbase/testclassification/LargeTests.java
 
b/hbase-annotations/src/test/java/org/apache/hadoop/hbase/testclassification/LargeTests.java
index eb4a66a..aa183d5 100644
--- 
a/hbase-annotations/src/test/java/org/apache/hadoop/hbase/testclassification/LargeTests.java
+++ 
b/hbase-annotations/src/test/java/org/apache/hadoop/hbase/testclassification/LargeTests.java
@@ -1,4 +1,4 @@
-/*
+/**
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
  * distributed with this work for additional information
@@ -19,18 +19,17 @@
 package org.apache.hadoop.hbase.testclassification;
 
 /**
- * Tag a test as 'large', meaning that the test class has the following
- * characteristics:
+ * Tagging a test as 'large', means that the test class has the following 
characteristics:
  * 
- *  executed in an isolated JVM. Tests can however be executed in 
different JVM on the same
- *  machine simultaneously.
- *  will not have to be executed by the developer before submitting a 
bug
- *  ideally, last less than 2 minutes to help parallelization
+ *  it can executed in an isolated JVM (Tests can however be executed in 
different JVM on the
+ *  same  machine simultaneously so be careful two concurrent tests end up 
fighting over ports
+ *  or other singular resources).
+ *  ideally, the whole large test-suite/class, no matter how many or how 
few test methods it
+ *  has, will run in last less than three minutes
+ *  No large test can take longer than ten minutes; it will be killed. See 
'Integeration Tests'
+ *  if you need to run tests longer than this.
  * 
  *
- *  It the worst case compared to small or medium, use it only for tests that
- *you cannot put in the other categories
- *
  * @see SmallTests
  * @see MediumTests
  * @see IntegrationTests

http://git-wip-us.apache.org/repos/asf/hbase/blob/f8c3d456/hbase-annotations/src/test/java/org/apache/hadoop/hbase/testclassification/MediumTests.java
--
diff --git 
a/hbase-annotations/src/test/java/org/apache/hadoop/hbase/testclassification/MediumTests.java
 
b/hbase-annotations/src/test/java/org/apache/hadoop/hbase/testclassification/MediumTests.java
index 55f81cb..0f8055b 100644
--- 
a/hbase-annotations/src/test/java/org/apache/hadoop/hbase/testclassification/MediumTests.java
+++ 
b/hbase-annotations/src/test/java/org/apache/hadoop/hbase/testclassification/MediumTests.java
@@ -1,4 +1,4 @@
-/*
+/**
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
  * distributed with this work for additional information
@@ -19,16 +19,16 @@
 package org.apache.hadoop.hbase.testclassification;
 
 /**
- * Tag a test as 'Medium', meaning that the test class has the following
- * characteristics:
+ * Tagging a test as 'medium' means that the test class has the following 
characteristics:
  * 
- *  executed in an isolated JVM. Tests can however be executed in 
different JVM on the same
- *  machine simultaneously.
- *  will have to be executed by the developer before submitting a bug
- *  ideally, last less than 1 minutes to help parallelization
+ *  it can be executed in an isolated JVM (Tests can however be executed 
in different JVMs on
+ *  the  same  machine simultaneously so be careful two concurrent tests end 
up fighting over ports
+ *  or other singular resources).
+ *  ideally, the whole medium test-suite/class, no matter how many or how 
few test methods it
+ *  has, will complete in 50 seconds; otherwise make it a 'large' test.
  * 
  *
-

hbase git commit: HBASE-19960 Doc test timeouts and test categories in hbase2

2018-02-12 Thread stack
Repository: hbase
Updated Branches:
  refs/heads/branch-2 a23a7743c -> 6f35b5393


HBASE-19960 Doc test timeouts and test categories in hbase2


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

Branch: refs/heads/branch-2
Commit: 6f35b5393c1f9462344380f48b30f247947806ef
Parents: a23a774
Author: Michael Stack 
Authored: Mon Feb 12 20:52:01 2018 -0800
Committer: Michael Stack 
Committed: Mon Feb 12 20:52:01 2018 -0800

--
 .../hbase/testclassification/LargeTests.java| 19 ++---
 .../hbase/testclassification/MediumTests.java   | 16 ++--
 .../hbase/testclassification/SmallTests.java| 16 ++--
 src/main/asciidoc/_chapters/developer.adoc  | 89 ++--
 4 files changed, 86 insertions(+), 54 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/6f35b539/hbase-annotations/src/test/java/org/apache/hadoop/hbase/testclassification/LargeTests.java
--
diff --git 
a/hbase-annotations/src/test/java/org/apache/hadoop/hbase/testclassification/LargeTests.java
 
b/hbase-annotations/src/test/java/org/apache/hadoop/hbase/testclassification/LargeTests.java
index eb4a66a..aa183d5 100644
--- 
a/hbase-annotations/src/test/java/org/apache/hadoop/hbase/testclassification/LargeTests.java
+++ 
b/hbase-annotations/src/test/java/org/apache/hadoop/hbase/testclassification/LargeTests.java
@@ -1,4 +1,4 @@
-/*
+/**
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
  * distributed with this work for additional information
@@ -19,18 +19,17 @@
 package org.apache.hadoop.hbase.testclassification;
 
 /**
- * Tag a test as 'large', meaning that the test class has the following
- * characteristics:
+ * Tagging a test as 'large', means that the test class has the following 
characteristics:
  * 
- *  executed in an isolated JVM. Tests can however be executed in 
different JVM on the same
- *  machine simultaneously.
- *  will not have to be executed by the developer before submitting a 
bug
- *  ideally, last less than 2 minutes to help parallelization
+ *  it can executed in an isolated JVM (Tests can however be executed in 
different JVM on the
+ *  same  machine simultaneously so be careful two concurrent tests end up 
fighting over ports
+ *  or other singular resources).
+ *  ideally, the whole large test-suite/class, no matter how many or how 
few test methods it
+ *  has, will run in last less than three minutes
+ *  No large test can take longer than ten minutes; it will be killed. See 
'Integeration Tests'
+ *  if you need to run tests longer than this.
  * 
  *
- *  It the worst case compared to small or medium, use it only for tests that
- *you cannot put in the other categories
- *
  * @see SmallTests
  * @see MediumTests
  * @see IntegrationTests

http://git-wip-us.apache.org/repos/asf/hbase/blob/6f35b539/hbase-annotations/src/test/java/org/apache/hadoop/hbase/testclassification/MediumTests.java
--
diff --git 
a/hbase-annotations/src/test/java/org/apache/hadoop/hbase/testclassification/MediumTests.java
 
b/hbase-annotations/src/test/java/org/apache/hadoop/hbase/testclassification/MediumTests.java
index 55f81cb..0f8055b 100644
--- 
a/hbase-annotations/src/test/java/org/apache/hadoop/hbase/testclassification/MediumTests.java
+++ 
b/hbase-annotations/src/test/java/org/apache/hadoop/hbase/testclassification/MediumTests.java
@@ -1,4 +1,4 @@
-/*
+/**
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
  * distributed with this work for additional information
@@ -19,16 +19,16 @@
 package org.apache.hadoop.hbase.testclassification;
 
 /**
- * Tag a test as 'Medium', meaning that the test class has the following
- * characteristics:
+ * Tagging a test as 'medium' means that the test class has the following 
characteristics:
  * 
- *  executed in an isolated JVM. Tests can however be executed in 
different JVM on the same
- *  machine simultaneously.
- *  will have to be executed by the developer before submitting a bug
- *  ideally, last less than 1 minutes to help parallelization
+ *  it can be executed in an isolated JVM (Tests can however be executed 
in different JVMs on
+ *  the  same  machine simultaneously so be careful two concurrent tests end 
up fighting over ports
+ *  or other singular resources).
+ *  ideally, the whole medium test-suite/class, no matter how many or how 
few test methods it
+ *  has, will complete in 50 seconds; otherwise make it a 'large' test.
  * 
 

hbase git commit: HBASE-19986 If HBaseTestClassRule timesout a test, thread dump; ADDENDUM; white-space, checkstyle, and rb feedback by Duo

2018-02-12 Thread stack
Repository: hbase
Updated Branches:
  refs/heads/branch-2 b19531f04 -> a23a7743c


 HBASE-19986 If HBaseTestClassRule timesout a test, thread dump; ADDENDUM; 
white-space, checkstyle, and rb feedback by Duo


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

Branch: refs/heads/branch-2
Commit: a23a7743c907ee7e8edc354ab29d016e1cc8b0ef
Parents: b19531f
Author: Michael Stack 
Authored: Mon Feb 12 18:12:08 2018 -0800
Committer: Michael Stack 
Committed: Mon Feb 12 18:12:46 2018 -0800

--
 .../apache/hadoop/hbase/HBaseClassTestRule.java |  2 +-
 .../org/apache/hadoop/hbase/TestTimeout.java|  9 +++-
 .../hadoop/hbase/TimedOutTestsListener.java | 22 ++--
 3 files changed, 15 insertions(+), 18 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/a23a7743/hbase-common/src/test/java/org/apache/hadoop/hbase/HBaseClassTestRule.java
--
diff --git 
a/hbase-common/src/test/java/org/apache/hadoop/hbase/HBaseClassTestRule.java 
b/hbase-common/src/test/java/org/apache/hadoop/hbase/HBaseClassTestRule.java
index b964872..d47b213 100644
--- a/hbase-common/src/test/java/org/apache/hadoop/hbase/HBaseClassTestRule.java
+++ b/hbase-common/src/test/java/org/apache/hadoop/hbase/HBaseClassTestRule.java
@@ -1,4 +1,4 @@
-/*
+/**
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
  * distributed with this work for additional information

http://git-wip-us.apache.org/repos/asf/hbase/blob/a23a7743/hbase-common/src/test/java/org/apache/hadoop/hbase/TestTimeout.java
--
diff --git 
a/hbase-common/src/test/java/org/apache/hadoop/hbase/TestTimeout.java 
b/hbase-common/src/test/java/org/apache/hadoop/hbase/TestTimeout.java
index 495667c..d547ddb 100644
--- a/hbase-common/src/test/java/org/apache/hadoop/hbase/TestTimeout.java
+++ b/hbase-common/src/test/java/org/apache/hadoop/hbase/TestTimeout.java
@@ -33,7 +33,7 @@ public class TestTimeout {
 
 @Test
 public void run1() throws InterruptedException {
-Thread.sleep(100);
+  Thread.sleep(100);
 }
 
 /**
@@ -46,14 +46,11 @@ public class TestTimeout {
   Thread t = new Thread("HangingThread") {
 public void run() {
   synchronized(this) {
-while(true) {
-}
+while(true) {}
   }
 }
   };
   t.start();
-  while (true) {
-// Just hang out too.
-  }
+  while (true) {}
}
 }

http://git-wip-us.apache.org/repos/asf/hbase/blob/a23a7743/hbase-common/src/test/java/org/apache/hadoop/hbase/TimedOutTestsListener.java
--
diff --git 
a/hbase-common/src/test/java/org/apache/hadoop/hbase/TimedOutTestsListener.java 
b/hbase-common/src/test/java/org/apache/hadoop/hbase/TimedOutTestsListener.java
index d5c87f3..643058c 100644
--- 
a/hbase-common/src/test/java/org/apache/hadoop/hbase/TimedOutTestsListener.java
+++ 
b/hbase-common/src/test/java/org/apache/hadoop/hbase/TimedOutTestsListener.java
@@ -40,15 +40,15 @@ import org.junit.runner.notification.RunListener;
 public class TimedOutTestsListener extends RunListener {
 
   static final String TEST_TIMED_OUT_PREFIX = "test timed out after";
-  
+
   private static String INDENT = "";
 
   private final PrintWriter output;
-  
+
   public TimedOutTestsListener() {
 this.output = new PrintWriter(System.err);
   }
-  
+
   public TimedOutTestsListener(PrintWriter output) {
 this.output = output;
   }
@@ -63,16 +63,16 @@ public class TimedOutTestsListener extends RunListener {
 }
 output.flush();
   }
-  
+
   public static String buildThreadDiagnosticString() {
 StringWriter sw = new StringWriter();
 PrintWriter output = new PrintWriter(sw);
-
+
 DateFormat dateFormat = new SimpleDateFormat("-MM-dd hh:mm:ss,SSS");
 output.println(String.format("Timestamp: %s", dateFormat.format(new 
Date(;
 output.println();
 output.println(buildThreadDump());
-
+
 String deadlocksInfo = buildDeadlockInfo();
 if (deadlocksInfo != null) {
   output.println("> DEADLOCKS DETECTED <");
@@ -106,28 +106,28 @@ public class TimedOutTestsListener extends RunListener {
 }
 return dump.toString();
   }
-  
+
   static String buildDeadlockInfo() {
 ThreadMXBean threadBean = ManagementFactory.getThreadMXBean();
 long[] threadIds = threadBean.findMonitorDeadlockedThreads();
 if (threadIds != null && threadIds.length > 0)

hbase git commit: HBASE-19986 If HBaseTestClassRule timesout a test, thread dump; ADDENDUM; white-space, checkstyle, and rb feedback by Duo

2018-02-12 Thread stack
Repository: hbase
Updated Branches:
  refs/heads/master 7cc239fb5 -> 24bed6b3f


 HBASE-19986 If HBaseTestClassRule timesout a test, thread dump; ADDENDUM; 
white-space, checkstyle, and rb feedback by Duo


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

Branch: refs/heads/master
Commit: 24bed6b3fbb54a20ef67201c160de649421cdd51
Parents: 7cc239f
Author: Michael Stack 
Authored: Mon Feb 12 18:12:08 2018 -0800
Committer: Michael Stack 
Committed: Mon Feb 12 18:12:24 2018 -0800

--
 .../apache/hadoop/hbase/HBaseClassTestRule.java |  2 +-
 .../org/apache/hadoop/hbase/TestTimeout.java|  9 +++-
 .../hadoop/hbase/TimedOutTestsListener.java | 22 ++--
 3 files changed, 15 insertions(+), 18 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/24bed6b3/hbase-common/src/test/java/org/apache/hadoop/hbase/HBaseClassTestRule.java
--
diff --git 
a/hbase-common/src/test/java/org/apache/hadoop/hbase/HBaseClassTestRule.java 
b/hbase-common/src/test/java/org/apache/hadoop/hbase/HBaseClassTestRule.java
index b964872..d47b213 100644
--- a/hbase-common/src/test/java/org/apache/hadoop/hbase/HBaseClassTestRule.java
+++ b/hbase-common/src/test/java/org/apache/hadoop/hbase/HBaseClassTestRule.java
@@ -1,4 +1,4 @@
-/*
+/**
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
  * distributed with this work for additional information

http://git-wip-us.apache.org/repos/asf/hbase/blob/24bed6b3/hbase-common/src/test/java/org/apache/hadoop/hbase/TestTimeout.java
--
diff --git 
a/hbase-common/src/test/java/org/apache/hadoop/hbase/TestTimeout.java 
b/hbase-common/src/test/java/org/apache/hadoop/hbase/TestTimeout.java
index 495667c..d547ddb 100644
--- a/hbase-common/src/test/java/org/apache/hadoop/hbase/TestTimeout.java
+++ b/hbase-common/src/test/java/org/apache/hadoop/hbase/TestTimeout.java
@@ -33,7 +33,7 @@ public class TestTimeout {
 
 @Test
 public void run1() throws InterruptedException {
-Thread.sleep(100);
+  Thread.sleep(100);
 }
 
 /**
@@ -46,14 +46,11 @@ public class TestTimeout {
   Thread t = new Thread("HangingThread") {
 public void run() {
   synchronized(this) {
-while(true) {
-}
+while(true) {}
   }
 }
   };
   t.start();
-  while (true) {
-// Just hang out too.
-  }
+  while (true) {}
}
 }

http://git-wip-us.apache.org/repos/asf/hbase/blob/24bed6b3/hbase-common/src/test/java/org/apache/hadoop/hbase/TimedOutTestsListener.java
--
diff --git 
a/hbase-common/src/test/java/org/apache/hadoop/hbase/TimedOutTestsListener.java 
b/hbase-common/src/test/java/org/apache/hadoop/hbase/TimedOutTestsListener.java
index d5c87f3..643058c 100644
--- 
a/hbase-common/src/test/java/org/apache/hadoop/hbase/TimedOutTestsListener.java
+++ 
b/hbase-common/src/test/java/org/apache/hadoop/hbase/TimedOutTestsListener.java
@@ -40,15 +40,15 @@ import org.junit.runner.notification.RunListener;
 public class TimedOutTestsListener extends RunListener {
 
   static final String TEST_TIMED_OUT_PREFIX = "test timed out after";
-  
+
   private static String INDENT = "";
 
   private final PrintWriter output;
-  
+
   public TimedOutTestsListener() {
 this.output = new PrintWriter(System.err);
   }
-  
+
   public TimedOutTestsListener(PrintWriter output) {
 this.output = output;
   }
@@ -63,16 +63,16 @@ public class TimedOutTestsListener extends RunListener {
 }
 output.flush();
   }
-  
+
   public static String buildThreadDiagnosticString() {
 StringWriter sw = new StringWriter();
 PrintWriter output = new PrintWriter(sw);
-
+
 DateFormat dateFormat = new SimpleDateFormat("-MM-dd hh:mm:ss,SSS");
 output.println(String.format("Timestamp: %s", dateFormat.format(new 
Date(;
 output.println();
 output.println(buildThreadDump());
-
+
 String deadlocksInfo = buildDeadlockInfo();
 if (deadlocksInfo != null) {
   output.println("> DEADLOCKS DETECTED <");
@@ -106,28 +106,28 @@ public class TimedOutTestsListener extends RunListener {
 }
 return dump.toString();
   }
-  
+
   static String buildDeadlockInfo() {
 ThreadMXBean threadBean = ManagementFactory.getThreadMXBean();
 long[] threadIds = threadBean.findMonitorDeadlockedThreads();
 if (threadIds != null && threadIds.length > 0) {
 

hbase git commit: HBASE-19970 (addendum for 1.x only) Remove unused functions from TableAuthManager.

2018-02-12 Thread appy
Repository: hbase
Updated Branches:
  refs/heads/branch-1 e6ce789b6 -> 0f79c497c


HBASE-19970 (addendum for 1.x only) Remove unused functions from 
TableAuthManager.


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

Branch: refs/heads/branch-1
Commit: 0f79c497c52fbe78a1f344675579b6eb26d23b70
Parents: e6ce789
Author: Apekshit Sharma 
Authored: Mon Feb 12 16:30:48 2018 -0800
Committer: Apekshit Sharma 
Committed: Mon Feb 12 16:31:09 2018 -0800

--
 .../hadoop/hbase/security/access/TestZKPermissionWatcher.java  | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/0f79c497/hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestZKPermissionWatcher.java
--
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestZKPermissionWatcher.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestZKPermissionWatcher.java
index a80f184..0961cab 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestZKPermissionWatcher.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestZKPermissionWatcher.java
@@ -47,8 +47,8 @@ import org.junit.experimental.categories.Category;
  * Test the reading and writing of access permissions to and from zookeeper.
  */
 @Category(LargeTests.class)
-public class TestZKPermissionsWatcher {
-  private static final Log LOG = 
LogFactory.getLog(TestZKPermissionsWatcher.class);
+public class TestZKPermissionWatcher {
+  private static final Log LOG = 
LogFactory.getLog(TestZKPermissionWatcher.class);
   private static final HBaseTestingUtility UTIL = new HBaseTestingUtility();
   private static TableAuthManager AUTH_A;
   private static TableAuthManager AUTH_B;
@@ -90,7 +90,7 @@ public class TestZKPermissionsWatcher {
   }
 
   private void setTableACL(
-  User user, TableAuthManager srcAuthManager, TableAuthManager 
destAuthManager,
+  User user, TableAuthManager srcAuthManager, final TableAuthManager 
destAuthManager,
   TablePermission.Action... actions) throws Exception{
 // update ACL: george RW
 ListMultimap perms = ArrayListMultimap.create();



hbase git commit: HBASE-19970 Remove unused functions from TableAuthManager.

2018-02-12 Thread appy
Repository: hbase
Updated Branches:
  refs/heads/branch-1 fe5848038 -> e6ce789b6


HBASE-19970 Remove unused functions from TableAuthManager.

Functions deleted: setTableUserPermissions, setTableGroupPermissions, 
setNamespaceUserPermissions,
setNamespaceGroupPermissions, writeTableToZooKeeper, writeNamespaceToZooKeeper


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

Branch: refs/heads/branch-1
Commit: e6ce789b6fa44592c3a566703c78de0687154a84
Parents: fe58480
Author: Apekshit Sharma 
Authored: Mon Feb 12 16:16:38 2018 -0800
Committer: Apekshit Sharma 
Committed: Mon Feb 12 16:20:36 2018 -0800

--
 .../security/access/AccessControlLists.java |   9 +-
 .../hbase/security/access/AccessController.java |   4 +-
 .../hbase/security/access/TableAuthManager.java |  75 
 .../security/access/TestTablePermissions.java   |   2 +-
 .../access/TestZKPermissionWatcher.java | 179 +++
 .../access/TestZKPermissionsWatcher.java| 178 --
 6 files changed, 188 insertions(+), 259 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/e6ce789b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
index 57c0f7b..f508110 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
@@ -73,6 +73,10 @@ import org.apache.hadoop.io.Text;
 import com.google.common.collect.ArrayListMultimap;
 import com.google.common.collect.ListMultimap;
 import com.google.common.collect.Lists;
+import org.apache.hadoop.io.Writable;
+import org.apache.hadoop.io.WritableFactories;
+import org.apache.hadoop.io.WritableUtils;
+import org.apache.jasper.tagplugins.jstl.core.Remove;
 
 /**
  * Maintains lists of permission grants to users and groups to allow for
@@ -667,8 +671,7 @@ public class AccessControlLists {
*
* Writes a set of permission [user: table permission]
*/
-  public static byte[] writePermissionsAsBytes(ListMultimap perms,
-  Configuration conf) {
+  public static byte[] writePermissionsAsBytes(ListMultimap perms) {
 return 
ProtobufUtil.prependPBMagic(ProtobufUtil.toUserTablePermissions(perms).toByteArray());
   }
 
@@ -755,7 +758,7 @@ public class AccessControlLists {
  // Deserialize the table permissions from the KV
  // TODO: This can be improved. Don't build UsersAndPermissions just 
to unpack it again,
  // use the builder
- AccessControlProtos.UsersAndPermissions.Builder builder = 
+ AccessControlProtos.UsersAndPermissions.Builder builder =
AccessControlProtos.UsersAndPermissions.newBuilder();
  ProtobufUtil.mergeFrom(builder, tag.getBuffer(), tag.getTagOffset(), 
tag.getTagLength());
  ListMultimap kvPerms =

http://git-wip-us.apache.org/repos/asf/hbase/blob/e6ce789b/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 fd0a704..c889a3e 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
@@ -243,7 +243,7 @@ public class AccessController extends 
BaseMasterAndRegionObserver
   tables.entrySet()) {
   byte[] entry = t.getKey();
   ListMultimap perms = t.getValue();
-  byte[] serialized = AccessControlLists.writePermissionsAsBytes(perms, 
conf);
+  byte[] serialized = AccessControlLists.writePermissionsAsBytes(perms);
   getAuthManager().getZKPermissionWatcher().writeToZookeeper(entry, 
serialized);
 }
 initialized = true;
@@ -275,7 +275,7 @@ public class AccessController extends 
BaseMasterAndRegionObserver
 try (Table t = regionEnv.getTable(AccessControlLists.ACL_TABLE_NAME)) {
   ListMultimap perms =
   AccessControlLists.getPermissions(conf, entry, t);
-  byte[] serialized = 
AccessControlLists.writePermissionsAsBytes(perms, conf);
+  byte[] serialized = 
AccessControlLis

hbase git commit: HBASE-19970 Remove unused functions from TableAuthManager.

2018-02-12 Thread appy
Repository: hbase
Updated Branches:
  refs/heads/branch-2 e94f08277 -> b19531f04


HBASE-19970 Remove unused functions from TableAuthManager.

Functions deleted: setTableUserPermissions, setTableGroupPermissions, 
setNamespaceUserPermissions,
setNamespaceGroupPermissions, writeTableToZooKeeper, writeNamespaceToZooKeeper


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

Branch: refs/heads/branch-2
Commit: b19531f04b2fd7178d8152068b8782e829b697ac
Parents: e94f082
Author: Apekshit Sharma 
Authored: Fri Feb 9 18:32:20 2018 -0800
Committer: Apekshit Sharma 
Committed: Mon Feb 12 16:02:48 2018 -0800

--
 .../security/access/AccessControlLists.java |  3 +-
 .../hbase/security/access/AccessController.java |  4 +-
 .../hbase/security/access/TableAuthManager.java | 75 
 .../security/access/TestTablePermissions.java   |  2 +-
 .../access/TestZKPermissionWatcher.java | 55 +++---
 5 files changed, 32 insertions(+), 107 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/b19531f0/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
index b0f33bd..663d0c5 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
@@ -644,8 +644,7 @@ public class AccessControlLists {
*
* Writes a set of permission [user: table permission]
*/
-  public static byte[] writePermissionsAsBytes(ListMultimap perms,
-  Configuration conf) {
+  public static byte[] writePermissionsAsBytes(ListMultimap perms) {
 return 
ProtobufUtil.prependPBMagic(AccessControlUtil.toUserTablePermissions(perms).toByteArray());
   }
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/b19531f0/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 3a4bf82..578cc4d 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
@@ -246,7 +246,7 @@ public class AccessController implements MasterCoprocessor, 
RegionCoprocessor,
   tables.entrySet()) {
   byte[] entry = t.getKey();
   ListMultimap perms = t.getValue();
-  byte[] serialized = AccessControlLists.writePermissionsAsBytes(perms, 
conf);
+  byte[] serialized = AccessControlLists.writePermissionsAsBytes(perms);
   getAuthManager().getZKPermissionWatcher().writeToZookeeper(entry, 
serialized);
 }
 initialized = true;
@@ -283,7 +283,7 @@ public class AccessController implements MasterCoprocessor, 
RegionCoprocessor,
 currentEntry = entry;
 ListMultimap perms =
 AccessControlLists.getPermissions(conf, entry, t);
-byte[] serialized = AccessControlLists.writePermissionsAsBytes(perms, 
conf);
+byte[] serialized = AccessControlLists.writePermissionsAsBytes(perms);
 zkw.writeToZookeeper(entry, serialized);
   }
 } catch(IOException ex) {

http://git-wip-us.apache.org/repos/asf/hbase/blob/b19531f0/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/TableAuthManager.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/TableAuthManager.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/TableAuthManager.java
index 76feff4..fdfd5c8 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/TableAuthManager.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/TableAuthManager.java
@@ -656,81 +656,6 @@ public class TableAuthManager implements Closeable {
 tableCache.remove(table);
   }
 
-  /**
-   * Overwrites the existing permission set for a given user for a table, and
-   * triggers an update for zookeeper synchronization.
-   * @param username
-   * @param table
-   * @param perms
-   */
-  public void setTableUserPermissions(String username, Ta

hbase git commit: HBASE-19970 Remove unused functions from TableAuthManager.

2018-02-12 Thread appy
Repository: hbase
Updated Branches:
  refs/heads/master c2ee82c90 -> 7cc239fb5


HBASE-19970 Remove unused functions from TableAuthManager.

Functions deleted: setTableUserPermissions, setTableGroupPermissions, 
setNamespaceUserPermissions,
setNamespaceGroupPermissions, writeTableToZooKeeper, writeNamespaceToZooKeeper


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

Branch: refs/heads/master
Commit: 7cc239fb5ac0ce3f22d93d1dbf7e80609427710a
Parents: c2ee82c
Author: Apekshit Sharma 
Authored: Fri Feb 9 18:32:20 2018 -0800
Committer: Apekshit Sharma 
Committed: Mon Feb 12 16:01:29 2018 -0800

--
 .../security/access/AccessControlLists.java |  3 +-
 .../hbase/security/access/AccessController.java |  6 +-
 .../hbase/security/access/TableAuthManager.java | 75 
 .../security/access/TestTablePermissions.java   |  2 +-
 .../access/TestZKPermissionWatcher.java | 55 +++---
 5 files changed, 33 insertions(+), 108 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/7cc239fb/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
index b0f33bd..663d0c5 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
@@ -644,8 +644,7 @@ public class AccessControlLists {
*
* Writes a set of permission [user: table permission]
*/
-  public static byte[] writePermissionsAsBytes(ListMultimap perms,
-  Configuration conf) {
+  public static byte[] writePermissionsAsBytes(ListMultimap perms) {
 return 
ProtobufUtil.prependPBMagic(AccessControlUtil.toUserTablePermissions(perms).toByteArray());
   }
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/7cc239fb/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 1fbf01d..3ac92b8 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
@@ -247,7 +247,7 @@ public class AccessController implements MasterCoprocessor, 
RegionCoprocessor,
   tables.entrySet()) {
   byte[] entry = t.getKey();
   ListMultimap perms = t.getValue();
-  byte[] serialized = AccessControlLists.writePermissionsAsBytes(perms, 
conf);
+  byte[] serialized = AccessControlLists.writePermissionsAsBytes(perms);
   getAuthManager().getZKPermissionWatcher().writeToZookeeper(entry, 
serialized);
 }
 initialized = true;
@@ -284,7 +284,7 @@ public class AccessController implements MasterCoprocessor, 
RegionCoprocessor,
 currentEntry = entry;
 ListMultimap perms =
 AccessControlLists.getPermissions(conf, entry, t);
-byte[] serialized = AccessControlLists.writePermissionsAsBytes(perms, 
conf);
+byte[] serialized = AccessControlLists.writePermissionsAsBytes(perms);
 zkw.writeToZookeeper(entry, serialized);
   }
 } catch(IOException ex) {
@@ -2456,7 +2456,7 @@ public class AccessController implements 
MasterCoprocessor, RegionCoprocessor,
   throws IOException {
 requirePermission(ctx, "replicateLogEntries", Action.WRITE);
   }
-  
+
   @Override
   public void  
preClearCompactionQueues(ObserverContext 
ctx)
   throws IOException {

http://git-wip-us.apache.org/repos/asf/hbase/blob/7cc239fb/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/TableAuthManager.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/TableAuthManager.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/TableAuthManager.java
index 76feff4..fdfd5c8 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/TableAuthManager.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/TableAuthManager.java
@@ -656,81 +656,6 @@ public class TableAuthManager implements Close

hbase git commit: HBASE-19986 If HBaseTestClassRule timesout a test, thread dump

2018-02-12 Thread stack
Repository: hbase
Updated Branches:
  refs/heads/master 00f887732 -> c2ee82c90


HBASE-19986 If HBaseTestClassRule timesout a test, thread dump


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

Branch: refs/heads/master
Commit: c2ee82c9091a721e22a0eb69be17cd0217739099
Parents: 00f8877
Author: Michael Stack 
Authored: Mon Feb 12 14:00:35 2018 -0800
Committer: Michael Stack 
Committed: Mon Feb 12 15:28:40 2018 -0800

--
 .../apache/hadoop/hbase/HBaseClassTestRule.java |   3 +-
 .../org/apache/hadoop/hbase/TestTimeout.java|  15 +-
 .../hadoop/hbase/TimedOutTestsListener.java | 177 +++
 .../hadoop/hbase/TimedOutTestsListener.java | 176 --
 pom.xml |   2 +-
 5 files changed, 194 insertions(+), 179 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/c2ee82c9/hbase-common/src/test/java/org/apache/hadoop/hbase/HBaseClassTestRule.java
--
diff --git 
a/hbase-common/src/test/java/org/apache/hadoop/hbase/HBaseClassTestRule.java 
b/hbase-common/src/test/java/org/apache/hadoop/hbase/HBaseClassTestRule.java
index bcde826..b964872 100644
--- a/hbase-common/src/test/java/org/apache/hadoop/hbase/HBaseClassTestRule.java
+++ b/hbase-common/src/test/java/org/apache/hadoop/hbase/HBaseClassTestRule.java
@@ -1,4 +1,4 @@
-/**
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
  * distributed with this work for additional information
@@ -18,6 +18,7 @@
 package org.apache.hadoop.hbase;
 
 import java.util.concurrent.TimeUnit;
+
 import org.apache.hadoop.hbase.testclassification.LargeTests;
 import org.apache.hadoop.hbase.testclassification.MediumTests;
 import org.apache.hadoop.hbase.testclassification.SmallTests;

http://git-wip-us.apache.org/repos/asf/hbase/blob/c2ee82c9/hbase-common/src/test/java/org/apache/hadoop/hbase/TestTimeout.java
--
diff --git 
a/hbase-common/src/test/java/org/apache/hadoop/hbase/TestTimeout.java 
b/hbase-common/src/test/java/org/apache/hadoop/hbase/TestTimeout.java
index 343108e..495667c 100644
--- a/hbase-common/src/test/java/org/apache/hadoop/hbase/TestTimeout.java
+++ b/hbase-common/src/test/java/org/apache/hadoop/hbase/TestTimeout.java
@@ -18,6 +18,7 @@
 package org.apache.hadoop.hbase;
 
 import org.apache.hadoop.hbase.testclassification.SmallTests;
+import org.apache.hadoop.hbase.util.Threads;
 import org.junit.ClassRule;
 import org.junit.Ignore;
 import org.junit.Test;
@@ -41,6 +42,18 @@ public class TestTimeout {
  */
 @Ignore @Test
 public void infiniteLoop() {
-while (true) {}
+  // Launch a background non-daemon thread.
+  Thread t = new Thread("HangingThread") {
+public void run() {
+  synchronized(this) {
+while(true) {
+}
+  }
+}
+  };
+  t.start();
+  while (true) {
+// Just hang out too.
+  }
}
 }

http://git-wip-us.apache.org/repos/asf/hbase/blob/c2ee82c9/hbase-common/src/test/java/org/apache/hadoop/hbase/TimedOutTestsListener.java
--
diff --git 
a/hbase-common/src/test/java/org/apache/hadoop/hbase/TimedOutTestsListener.java 
b/hbase-common/src/test/java/org/apache/hadoop/hbase/TimedOutTestsListener.java
new file mode 100644
index 000..d5c87f3
--- /dev/null
+++ 
b/hbase-common/src/test/java/org/apache/hadoop/hbase/TimedOutTestsListener.java
@@ -0,0 +1,177 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hbase;
+
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.lang.management.LockInfo;
+import java.lang.management.ManagementFactory;
+import jav

hbase git commit: HBASE-19986 If HBaseTestClassRule timesout a test, thread dump

2018-02-12 Thread stack
Repository: hbase
Updated Branches:
  refs/heads/branch-2 1ae64ccee -> e94f08277


HBASE-19986 If HBaseTestClassRule timesout a test, thread dump


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

Branch: refs/heads/branch-2
Commit: e94f0827769c8bcbf16e36223290d39ff31b4c12
Parents: 1ae64cc
Author: Michael Stack 
Authored: Mon Feb 12 14:00:35 2018 -0800
Committer: Michael Stack 
Committed: Mon Feb 12 15:13:42 2018 -0800

--
 .../apache/hadoop/hbase/HBaseClassTestRule.java |   3 +-
 .../org/apache/hadoop/hbase/TestTimeout.java|  15 +-
 .../hadoop/hbase/TimedOutTestsListener.java | 177 +++
 .../hadoop/hbase/TimedOutTestsListener.java | 176 --
 pom.xml |   2 +-
 5 files changed, 194 insertions(+), 179 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/e94f0827/hbase-common/src/test/java/org/apache/hadoop/hbase/HBaseClassTestRule.java
--
diff --git 
a/hbase-common/src/test/java/org/apache/hadoop/hbase/HBaseClassTestRule.java 
b/hbase-common/src/test/java/org/apache/hadoop/hbase/HBaseClassTestRule.java
index bcde826..b964872 100644
--- a/hbase-common/src/test/java/org/apache/hadoop/hbase/HBaseClassTestRule.java
+++ b/hbase-common/src/test/java/org/apache/hadoop/hbase/HBaseClassTestRule.java
@@ -1,4 +1,4 @@
-/**
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
  * distributed with this work for additional information
@@ -18,6 +18,7 @@
 package org.apache.hadoop.hbase;
 
 import java.util.concurrent.TimeUnit;
+
 import org.apache.hadoop.hbase.testclassification.LargeTests;
 import org.apache.hadoop.hbase.testclassification.MediumTests;
 import org.apache.hadoop.hbase.testclassification.SmallTests;

http://git-wip-us.apache.org/repos/asf/hbase/blob/e94f0827/hbase-common/src/test/java/org/apache/hadoop/hbase/TestTimeout.java
--
diff --git 
a/hbase-common/src/test/java/org/apache/hadoop/hbase/TestTimeout.java 
b/hbase-common/src/test/java/org/apache/hadoop/hbase/TestTimeout.java
index 343108e..495667c 100644
--- a/hbase-common/src/test/java/org/apache/hadoop/hbase/TestTimeout.java
+++ b/hbase-common/src/test/java/org/apache/hadoop/hbase/TestTimeout.java
@@ -18,6 +18,7 @@
 package org.apache.hadoop.hbase;
 
 import org.apache.hadoop.hbase.testclassification.SmallTests;
+import org.apache.hadoop.hbase.util.Threads;
 import org.junit.ClassRule;
 import org.junit.Ignore;
 import org.junit.Test;
@@ -41,6 +42,18 @@ public class TestTimeout {
  */
 @Ignore @Test
 public void infiniteLoop() {
-while (true) {}
+  // Launch a background non-daemon thread.
+  Thread t = new Thread("HangingThread") {
+public void run() {
+  synchronized(this) {
+while(true) {
+}
+  }
+}
+  };
+  t.start();
+  while (true) {
+// Just hang out too.
+  }
}
 }

http://git-wip-us.apache.org/repos/asf/hbase/blob/e94f0827/hbase-common/src/test/java/org/apache/hadoop/hbase/TimedOutTestsListener.java
--
diff --git 
a/hbase-common/src/test/java/org/apache/hadoop/hbase/TimedOutTestsListener.java 
b/hbase-common/src/test/java/org/apache/hadoop/hbase/TimedOutTestsListener.java
new file mode 100644
index 000..d5c87f3
--- /dev/null
+++ 
b/hbase-common/src/test/java/org/apache/hadoop/hbase/TimedOutTestsListener.java
@@ -0,0 +1,177 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hbase;
+
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.lang.management.LockInfo;
+import java.lang.management.ManagementFactory;
+import

hbase git commit: HBASE-19981 Boolean#getBoolean is used to parse value

2018-02-12 Thread tedyu
Repository: hbase
Updated Branches:
  refs/heads/branch-1.4 1af0078a4 -> 17b75ed82


HBASE-19981 Boolean#getBoolean is used to parse value

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/17b75ed8
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/17b75ed8
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/17b75ed8

Branch: refs/heads/branch-1.4
Commit: 17b75ed82cd9de9a4d05fbe7e95d6ce8f48423d7
Parents: 1af0078
Author: Janos Gub 
Authored: Mon Feb 12 18:35:14 2018 +0100
Committer: tedyu 
Committed: Mon Feb 12 13:08:32 2018 -0800

--
 .../src/main/java/org/apache/hadoop/hbase/HColumnDescriptor.java   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/17b75ed8/hbase-client/src/main/java/org/apache/hadoop/hbase/HColumnDescriptor.java
--
diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/HColumnDescriptor.java 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/HColumnDescriptor.java
index 560b74b..1ac774f 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/HColumnDescriptor.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/HColumnDescriptor.java
@@ -1334,7 +1334,7 @@ public class HColumnDescriptor implements 
WritableComparable
 // in version 8, the BloomFilter setting changed from bool to enum
 if (version < 8 && Bytes.toString(key.get()).equals(BLOOMFILTER)) {
   value.set(Bytes.toBytes(
-  Boolean.getBoolean(Bytes.toString(value.get()))
+  Boolean.parseBoolean(Bytes.toString(value.get()))
 ? BloomType.ROW.toString()
 : BloomType.NONE.toString()));
 }



hbase git commit: HBASE-19981 Boolean#getBoolean is used to parse value

2018-02-12 Thread tedyu
Repository: hbase
Updated Branches:
  refs/heads/branch-1 7ced28f09 -> fe5848038


HBASE-19981 Boolean#getBoolean is used to parse value

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/fe584803
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/fe584803
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/fe584803

Branch: refs/heads/branch-1
Commit: fe5848038d4c9e00c19908d811163c01e6a8
Parents: 7ced28f
Author: Janos Gub 
Authored: Mon Feb 12 18:35:14 2018 +0100
Committer: tedyu 
Committed: Mon Feb 12 13:08:04 2018 -0800

--
 .../src/main/java/org/apache/hadoop/hbase/HColumnDescriptor.java   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/fe584803/hbase-client/src/main/java/org/apache/hadoop/hbase/HColumnDescriptor.java
--
diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/HColumnDescriptor.java 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/HColumnDescriptor.java
index 4a6550b..6488968 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/HColumnDescriptor.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/HColumnDescriptor.java
@@ -1336,7 +1336,7 @@ public class HColumnDescriptor implements 
WritableComparable
 // in version 8, the BloomFilter setting changed from bool to enum
 if (version < 8 && Bytes.toString(key.get()).equals(BLOOMFILTER)) {
   value.set(Bytes.toBytes(
-  Boolean.getBoolean(Bytes.toString(value.get()))
+  Boolean.parseBoolean(Bytes.toString(value.get()))
 ? BloomType.ROW.toString()
 : BloomType.NONE.toString()));
 }



hbase git commit: HBASE-19972 Should rethrow the RetriesExhaustedWithDetailsException when failed to apply the batch in ReplicationSink; ADDENDUM to fix TestReplicationSink

2018-02-12 Thread stack
Repository: hbase
Updated Branches:
  refs/heads/branch-2 f5b365e2c -> 1ae64ccee


HBASE-19972 Should rethrow the RetriesExhaustedWithDetailsException when failed 
to apply the batch in ReplicationSink; ADDENDUM to fix TestReplicationSink


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

Branch: refs/heads/branch-2
Commit: 1ae64ccee03d587bfeae9c84b946a3189136df1d
Parents: f5b365e
Author: Michael Stack 
Authored: Mon Feb 12 10:47:06 2018 -0800
Committer: Michael Stack 
Committed: Mon Feb 12 10:48:21 2018 -0800

--
 .../hbase/master/assignment/AssignProcedure.java   |  4 ++--
 .../replication/regionserver/TestReplicationSink.java  | 13 +++--
 2 files changed, 9 insertions(+), 8 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/1ae64cce/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignProcedure.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignProcedure.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignProcedure.java
index 801caf5..65eafe7 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignProcedure.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignProcedure.java
@@ -158,7 +158,7 @@ public class AssignProcedure extends 
RegionTransitionProcedure {
   LOG.info("Assigned, not reassigning; " + this + "; " + 
regionNode.toShortString());
   return false;
 }
-// Don't assign if table is in disabling of disabled state.
+// Don't assign if table is in disabling or disabled state.
 TableStateManager tsm = env.getMasterServices().getTableStateManager();
 TableName tn = regionNode.getRegionInfo().getTable();
 if (tsm.isTableState(tn, TableState.State.DISABLING, 
TableState.State.DISABLED)) {
@@ -166,7 +166,7 @@ public class AssignProcedure extends 
RegionTransitionProcedure {
   return false;
 }
 // If the region is SPLIT, we can't assign it. But state might be CLOSED, 
rather than
-// SPLIT which is what a region gets set to when Unassigned as part of 
SPLIT. FIX.
+// SPLIT which is what a region gets set to when unassigned as part of 
SPLIT. FIX.
 if (regionNode.isInState(State.SPLIT) ||
 (regionNode.getRegionInfo().isOffline() && 
regionNode.getRegionInfo().isSplit())) {
   LOG.info("SPLIT, cannot be assigned; " + this + "; " + regionNode +

http://git-wip-us.apache.org/repos/asf/hbase/blob/1ae64cce/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSink.java
--
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSink.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSink.java
index fcce84f..aa6c39c 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSink.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSink.java
@@ -1,4 +1,4 @@
-/**
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
  * distributed with this work for additional information
@@ -317,8 +317,8 @@ public class TestReplicationSink {
 Path dir = TEST_UTIL.getDataTestDirOnTestFS("testReplicateEntries");
 Path familyDir = new Path(dir, Bytes.toString(FAM_NAME1));
 int numRows = 10;
-
 List p = new ArrayList<>(1);
+final String hfilePrefix = "hfile-";
 
 // 1. Generate 25 hfile ranges
 Random rng = new SecureRandom();
@@ -335,7 +335,7 @@ public class TestReplicationSink {
 FileSystem fs = dir.getFileSystem(conf);
 Iterator numbersItr = numberList.iterator();
 for (int i = 0; i < 25; i++) {
-  Path hfilePath = new Path(familyDir, "hfile_" + i);
+  Path hfilePath = new Path(familyDir, hfilePrefix + i);
   HFileTestUtil.createHFile(conf, fs, hfilePath, FAM_NAME1, FAM_NAME1,
 Bytes.toBytes(numbersItr.next()), Bytes.toBytes(numbersItr.next()), 
numRows);
   p.add(hfilePath);
@@ -370,10 +370,10 @@ public class TestReplicationSink {
   
.append(Bytes.toString(TABLE_NAME1.getName())).append(Path.SEPARATOR)
   
.append(Bytes.toString(loadDescriptor.getEncodedRegionName().toByteArray()))
   
.append(Path.SEPARATOR).append(Bytes.toString(FAM_NAME1)).append(Path.SEPARATOR)
-  .append("hf

hbase git commit: HBASE-19972 Should rethrow the RetriesExhaustedWithDetailsException when failed to apply the batch in ReplicationSink; ADDENDUM to fix TestReplicationSink

2018-02-12 Thread stack
Repository: hbase
Updated Branches:
  refs/heads/master 1c67d8a46 -> 00f887732


HBASE-19972 Should rethrow the RetriesExhaustedWithDetailsException when failed 
to apply the batch in ReplicationSink; ADDENDUM to fix TestReplicationSink


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

Branch: refs/heads/master
Commit: 00f88773239b96e256c585fae98d846e2b65b4a4
Parents: 1c67d8a
Author: Michael Stack 
Authored: Mon Feb 12 10:47:06 2018 -0800
Committer: Michael Stack 
Committed: Mon Feb 12 10:47:25 2018 -0800

--
 .../hbase/master/assignment/AssignProcedure.java   |  4 ++--
 .../replication/regionserver/TestReplicationSink.java  | 13 +++--
 2 files changed, 9 insertions(+), 8 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/00f88773/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignProcedure.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignProcedure.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignProcedure.java
index 801caf5..65eafe7 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignProcedure.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignProcedure.java
@@ -158,7 +158,7 @@ public class AssignProcedure extends 
RegionTransitionProcedure {
   LOG.info("Assigned, not reassigning; " + this + "; " + 
regionNode.toShortString());
   return false;
 }
-// Don't assign if table is in disabling of disabled state.
+// Don't assign if table is in disabling or disabled state.
 TableStateManager tsm = env.getMasterServices().getTableStateManager();
 TableName tn = regionNode.getRegionInfo().getTable();
 if (tsm.isTableState(tn, TableState.State.DISABLING, 
TableState.State.DISABLED)) {
@@ -166,7 +166,7 @@ public class AssignProcedure extends 
RegionTransitionProcedure {
   return false;
 }
 // If the region is SPLIT, we can't assign it. But state might be CLOSED, 
rather than
-// SPLIT which is what a region gets set to when Unassigned as part of 
SPLIT. FIX.
+// SPLIT which is what a region gets set to when unassigned as part of 
SPLIT. FIX.
 if (regionNode.isInState(State.SPLIT) ||
 (regionNode.getRegionInfo().isOffline() && 
regionNode.getRegionInfo().isSplit())) {
   LOG.info("SPLIT, cannot be assigned; " + this + "; " + regionNode +

http://git-wip-us.apache.org/repos/asf/hbase/blob/00f88773/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSink.java
--
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSink.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSink.java
index fcce84f..aa6c39c 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSink.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSink.java
@@ -1,4 +1,4 @@
-/**
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
  * distributed with this work for additional information
@@ -317,8 +317,8 @@ public class TestReplicationSink {
 Path dir = TEST_UTIL.getDataTestDirOnTestFS("testReplicateEntries");
 Path familyDir = new Path(dir, Bytes.toString(FAM_NAME1));
 int numRows = 10;
-
 List p = new ArrayList<>(1);
+final String hfilePrefix = "hfile-";
 
 // 1. Generate 25 hfile ranges
 Random rng = new SecureRandom();
@@ -335,7 +335,7 @@ public class TestReplicationSink {
 FileSystem fs = dir.getFileSystem(conf);
 Iterator numbersItr = numberList.iterator();
 for (int i = 0; i < 25; i++) {
-  Path hfilePath = new Path(familyDir, "hfile_" + i);
+  Path hfilePath = new Path(familyDir, hfilePrefix + i);
   HFileTestUtil.createHFile(conf, fs, hfilePath, FAM_NAME1, FAM_NAME1,
 Bytes.toBytes(numbersItr.next()), Bytes.toBytes(numbersItr.next()), 
numRows);
   p.add(hfilePath);
@@ -370,10 +370,10 @@ public class TestReplicationSink {
   
.append(Bytes.toString(TABLE_NAME1.getName())).append(Path.SEPARATOR)
   
.append(Bytes.toString(loadDescriptor.getEncodedRegionName().toByteArray()))
   
.append(Path.SEPARATOR).append(Bytes.toString(FAM_NAME1)).append(Path.SEPARATOR)
-  .append("hfile_

hbase git commit: HBASE-19968 MapReduce test fails with NoClassDefFoundError against hadoop3

2018-02-12 Thread tedyu
Repository: hbase
Updated Branches:
  refs/heads/branch-2 c7473df2c -> f5b365e2c


HBASE-19968 MapReduce test fails with NoClassDefFoundError against hadoop3


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

Branch: refs/heads/branch-2
Commit: f5b365e2c95e6da23866e5a85257f6320cca973d
Parents: c7473df
Author: tedyu 
Authored: Mon Feb 12 09:54:48 2018 -0800
Committer: tedyu 
Committed: Mon Feb 12 09:54:48 2018 -0800

--
 hbase-mapreduce/pom.xml | 4 
 1 file changed, 4 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/f5b365e2/hbase-mapreduce/pom.xml
--
diff --git a/hbase-mapreduce/pom.xml b/hbase-mapreduce/pom.xml
index 850cb7c..7ad4508 100644
--- a/hbase-mapreduce/pom.xml
+++ b/hbase-mapreduce/pom.xml
@@ -426,6 +426,10 @@
   hadoop-common
 
 
+  org.apache.hadoop
+  hadoop-hdfs
+
+
   
   org.apache.hadoop
   hadoop-minicluster



hbase git commit: HBASE-19968 MapReduce test fails with NoClassDefFoundError against hadoop3

2018-02-12 Thread tedyu
Repository: hbase
Updated Branches:
  refs/heads/master 67b69fb2c -> 1c67d8a46


HBASE-19968 MapReduce test fails with NoClassDefFoundError against hadoop3


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

Branch: refs/heads/master
Commit: 1c67d8a46f644275484d0ae3554cb892e81882ba
Parents: 67b69fb
Author: tedyu 
Authored: Mon Feb 12 09:54:00 2018 -0800
Committer: tedyu 
Committed: Mon Feb 12 09:54:00 2018 -0800

--
 hbase-mapreduce/pom.xml | 4 
 1 file changed, 4 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/1c67d8a4/hbase-mapreduce/pom.xml
--
diff --git a/hbase-mapreduce/pom.xml b/hbase-mapreduce/pom.xml
index 4a416dc..76dd015 100644
--- a/hbase-mapreduce/pom.xml
+++ b/hbase-mapreduce/pom.xml
@@ -426,6 +426,10 @@
   hadoop-common
 
 
+  org.apache.hadoop
+  hadoop-hdfs
+
+
   
   org.apache.hadoop
   hadoop-minicluster



hbase git commit: HBASE-16060 1.x clients cannot access table state talking to 2.0 cluster

2018-02-12 Thread stack
Repository: hbase
Updated Branches:
  refs/heads/master 8ff783f76 -> 67b69fb2c


HBASE-16060 1.x clients cannot access table state talking to 2.0 cluster

This patch adds mirroring of table state out to zookeeper. HBase-1.x
clients look for table state in zookeeper, not in hbase:meta where
hbase-2.x maintains table state.

The patch also moves and refactors the 'migration' code that was put in
place by HBASE-13032.

D 
hbase-client/src/main/java/org/apache/hadoop/hbase/CoordinatedStateException.java
 Unused.

M hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
 Move table state migration code from Master startup out to
TableStateManager where it belongs. Also start
MirroringTableStateManager dependent on config.

A 
hbase-server/src/main/java/org/apache/hadoop/hbase/master/MirroringTableStateManager.java

M 
hbase-server/src/main/java/org/apache/hadoop/hbase/master/TableStateManager.java
 Move migration from zookeeper of table state in here. Also plumb in
mechanism so subclass can get a chance to look at table state as we do
the startup fixup full-table scan of meta.

M 
hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java
 Bug-fix. Now we create regions in CLOSED state but we fail to check
table state; were presuming table always enabled. Meant on startup
there'd be an unassigned region that never got assigned.

A 
hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMirroringTableStateManager.java
 Test migration and mirroring.


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

Branch: refs/heads/master
Commit: 67b69fb2c70d3a56ac45f59d57b7f2778094a566
Parents: 8ff783f
Author: Michael Stack 
Authored: Thu Feb 8 00:19:06 2018 -0800
Committer: Michael Stack 
Committed: Mon Feb 12 08:47:02 2018 -0800

--
 .../hadoop/hbase/CoordinatedStateException.java |  46 ---
 .../hadoop/hbase/zookeeper/ZNodePaths.java  |   3 +
 .../src/main/protobuf/ZooKeeper.proto   |   2 +-
 .../org/apache/hadoop/hbase/master/HMaster.java |  27 ++--
 .../hbase/master/MasterMetaBootstrap.java   |   3 +
 .../master/MirroringTableStateManager.java  | 109 +++
 .../hadoop/hbase/master/TableStateManager.java  | 132 ---
 .../master/assignment/AssignmentManager.java|  11 +-
 .../master/procedure/DeleteTableProcedure.java  |   5 +-
 .../master/procedure/ProcedureSyncWait.java |   3 +-
 .../procedure/TruncateTableProcedure.java   |   5 +-
 .../hadoop/hbase/util/ZKDataMigrator.java   |  11 +-
 .../hbase/master/TestMasterNoCluster.java   |   3 +-
 .../master/TestMirroringTableStateManager.java  | 105 +++
 .../hbase/master/TestTableStateManager.java |  70 +-
 15 files changed, 405 insertions(+), 130 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/67b69fb2/hbase-client/src/main/java/org/apache/hadoop/hbase/CoordinatedStateException.java
--
diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/CoordinatedStateException.java
 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/CoordinatedStateException.java
deleted file mode 100644
index fc0c4bc..000
--- 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/CoordinatedStateException.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/**
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.hbase;
-
-import org.apache.yetus.audience.InterfaceAudience;
-import org.apache.hadoop.hbase.exceptions.HBaseException;
-
-/**
- * Thrown by operations requiring coordination state access or manipulation
- * when internal error within coordination engine (or other internal 
implementation) occurs.
- */
-@InterfaceAudience.Private
-@SuppressWarnings("serial")
-public class CoordinatedStateException extends HBaseException {
-  public CoordinatedS

hbase git commit: HBASE-16060 1.x clients cannot access table state talking to 2.0 cluster

2018-02-12 Thread stack
Repository: hbase
Updated Branches:
  refs/heads/branch-2 43f507dfa -> c7473df2c


HBASE-16060 1.x clients cannot access table state talking to 2.0 cluster

This patch adds mirroring of table state out to zookeeper. HBase-1.x
clients look for table state in zookeeper, not in hbase:meta where
hbase-2.x maintains table state.

The patch also moves and refactors the 'migration' code that was put in
place by HBASE-13032.

D 
hbase-client/src/main/java/org/apache/hadoop/hbase/CoordinatedStateException.java
 Unused.

M hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
 Move table state migration code from Master startup out to
TableStateManager where it belongs. Also start
MirroringTableStateManager dependent on config.

A 
hbase-server/src/main/java/org/apache/hadoop/hbase/master/MirroringTableStateManager.java

M 
hbase-server/src/main/java/org/apache/hadoop/hbase/master/TableStateManager.java
 Move migration from zookeeper of table state in here. Also plumb in
mechanism so subclass can get a chance to look at table state as we do
the startup fixup full-table scan of meta.

M 
hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java
 Bug-fix. Now we create regions in CLOSED state but we fail to check
table state; were presuming table always enabled. Meant on startup
there'd be an unassigned region that never got assigned.

A 
hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMirroringTableStateManager.java
 Test migration and mirroring.


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

Branch: refs/heads/branch-2
Commit: c7473df2c3a5dc8cee526fc24b7f938e127f6d6a
Parents: 43f507d
Author: Michael Stack 
Authored: Thu Feb 8 00:19:06 2018 -0800
Committer: Michael Stack 
Committed: Mon Feb 12 08:22:14 2018 -0800

--
 .../hadoop/hbase/CoordinatedStateException.java |  46 ---
 .../hadoop/hbase/zookeeper/ZNodePaths.java  |   3 +
 .../src/main/protobuf/ZooKeeper.proto   |   2 +-
 .../org/apache/hadoop/hbase/master/HMaster.java |  27 ++--
 .../hbase/master/MasterMetaBootstrap.java   |   3 +
 .../master/MirroringTableStateManager.java  | 109 +++
 .../hadoop/hbase/master/TableStateManager.java  | 132 ---
 .../master/assignment/AssignmentManager.java|  11 +-
 .../master/procedure/DeleteTableProcedure.java  |   5 +-
 .../master/procedure/ProcedureSyncWait.java |   3 +-
 .../procedure/TruncateTableProcedure.java   |   5 +-
 .../hadoop/hbase/util/ZKDataMigrator.java   |  11 +-
 .../hbase/master/TestMasterNoCluster.java   |   3 +-
 .../master/TestMirroringTableStateManager.java  | 105 +++
 .../hbase/master/TestTableStateManager.java |  70 +-
 15 files changed, 405 insertions(+), 130 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/c7473df2/hbase-client/src/main/java/org/apache/hadoop/hbase/CoordinatedStateException.java
--
diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/CoordinatedStateException.java
 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/CoordinatedStateException.java
deleted file mode 100644
index fc0c4bc..000
--- 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/CoordinatedStateException.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/**
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.hbase;
-
-import org.apache.yetus.audience.InterfaceAudience;
-import org.apache.hadoop.hbase.exceptions.HBaseException;
-
-/**
- * Thrown by operations requiring coordination state access or manipulation
- * when internal error within coordination engine (or other internal 
implementation) occurs.
- */
-@InterfaceAudience.Private
-@SuppressWarnings("serial")
-public class CoordinatedStateException extends HBaseException {
-  public Coordina

[4/6] hbase-site git commit: Published site at .

2018-02-12 Thread git-site-role
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/2fda40d6/hbase-build-configuration/hbase-spark/mail-lists.html
--
diff --git a/hbase-build-configuration/hbase-spark/mail-lists.html 
b/hbase-build-configuration/hbase-spark/mail-lists.html
index e81ea2b..2b78475 100644
--- a/hbase-build-configuration/hbase-spark/mail-lists.html
+++ b/hbase-build-configuration/hbase-spark/mail-lists.html
@@ -7,7 +7,7 @@
   
 
 
-
+
 
 Apache HBase - Spark – Project Mailing Lists
 
@@ -176,7 +176,7 @@
 https://www.apache.org/";>The Apache Software 
Foundation.
 All rights reserved.  
 
-  Last Published: 
2018-02-11
+  Last Published: 
2018-02-12
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/2fda40d6/hbase-build-configuration/hbase-spark/plugin-management.html
--
diff --git a/hbase-build-configuration/hbase-spark/plugin-management.html 
b/hbase-build-configuration/hbase-spark/plugin-management.html
index 062cd3f..95d48ce 100644
--- a/hbase-build-configuration/hbase-spark/plugin-management.html
+++ b/hbase-build-configuration/hbase-spark/plugin-management.html
@@ -7,7 +7,7 @@
   
 
 
-
+
 
 Apache HBase - Spark – Project Plugin Management
 
@@ -271,7 +271,7 @@
 https://www.apache.org/";>The Apache Software 
Foundation.
 All rights reserved.  
 
-  Last Published: 
2018-02-11
+  Last Published: 
2018-02-12
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/2fda40d6/hbase-build-configuration/hbase-spark/plugins.html
--
diff --git a/hbase-build-configuration/hbase-spark/plugins.html 
b/hbase-build-configuration/hbase-spark/plugins.html
index 5bc60c3..0b5ceef 100644
--- a/hbase-build-configuration/hbase-spark/plugins.html
+++ b/hbase-build-configuration/hbase-spark/plugins.html
@@ -7,7 +7,7 @@
   
 
 
-
+
 
 Apache HBase - Spark – Project Plugins
 
@@ -238,7 +238,7 @@
 https://www.apache.org/";>The Apache Software 
Foundation.
 All rights reserved.  
 
-  Last Published: 
2018-02-11
+  Last Published: 
2018-02-12
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/2fda40d6/hbase-build-configuration/hbase-spark/project-info.html
--
diff --git a/hbase-build-configuration/hbase-spark/project-info.html 
b/hbase-build-configuration/hbase-spark/project-info.html
index cdc540a..8ee1c42 100644
--- a/hbase-build-configuration/hbase-spark/project-info.html
+++ b/hbase-build-configuration/hbase-spark/project-info.html
@@ -7,7 +7,7 @@
   
 
 
-
+
 
 Apache HBase - Spark – Project Information
 
@@ -167,7 +167,7 @@
 https://www.apache.org/";>The Apache Software 
Foundation.
 All rights reserved.  
 
-  Last Published: 
2018-02-11
+  Last Published: 
2018-02-12
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/2fda40d6/hbase-build-configuration/hbase-spark/project-reports.html
--
diff --git a/hbase-build-configuration/hbase-spark/project-reports.html 
b/hbase-build-configuration/hbase-spark/project-reports.html
index ec25da4..62a5962 100644
--- a/hbase-build-configuration/hbase-spark/project-reports.html
+++ b/hbase-build-configuration/hbase-spark/project-reports.html
@@ -7,7 +7,7 @@
   
 
 
-
+
 
 Apache HBase - Spark – Generated Reports
 
@@ -131,7 +131,7 @@
 https://www.apache.org/";>The Apache Software 
Foundation.
 All rights reserved.  
 
-  Last Published: 
2018-02-11
+  Last Published: 
2018-02-12
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/2fda40d6/hbase-build-configuration/hbase-spark/project-summary.html
--
diff --git a/hbase-build-configuration/hbase-spark/project-summary.html 
b/hbase-build-configuration/hbase-spark/project-summary.html
index 5843b63..3c2180c 100644
--- a/hbase-build-configuration/hbase-spark/project-summary.html
+++ b/hbase-build-configuration/hbase-spark/project-summary.html
@@ -7,7 +7,7 @@
   
 
 
-
+
 
 Apache HBase - Spark – Project Summary
 
@@ -166,7 +166,7 @@

[3/6] hbase-site git commit: Published site at .

2018-02-12 Thread git-site-role
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/2fda40d6/testdevapidocs/org/apache/hadoop/hbase/master/AbstractTestDLS.html
--
diff --git a/testdevapidocs/org/apache/hadoop/hbase/master/AbstractTestDLS.html 
b/testdevapidocs/org/apache/hadoop/hbase/master/AbstractTestDLS.html
index b922b2e..b48c274 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/master/AbstractTestDLS.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/master/AbstractTestDLS.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 
 
 
-public abstract class AbstractTestDLS
+public abstract class AbstractTestDLS
 extends http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true";
 title="class or interface in java.lang">Object
 Base class for testing distributed log splitting.
 
@@ -355,7 +355,7 @@ extends http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 
 
 LOG
-private static final org.slf4j.Logger LOG
+private static final org.slf4j.Logger LOG
 
 
 
@@ -364,7 +364,7 @@ extends http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 
 
 TEST_UTIL
-private static final HBaseTestingUtility TEST_UTIL
+private static final HBaseTestingUtility TEST_UTIL
 
 
 
@@ -373,7 +373,7 @@ extends http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 
 
 NUM_MASTERS
-private static final int NUM_MASTERS
+private static final int NUM_MASTERS
 
 See Also:
 Constant
 Field Values
@@ -386,7 +386,7 @@ extends http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 
 
 NUM_RS
-private static final int NUM_RS
+private static final int NUM_RS
 
 See Also:
 Constant
 Field Values
@@ -399,7 +399,7 @@ extends http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 
 
 COLUMN_FAMILY
-private static byte[] COLUMN_FAMILY
+private static byte[] COLUMN_FAMILY
 
 
 
@@ -408,7 +408,7 @@ extends http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 
 
 testName
-public org.junit.rules.TestName testName
+public org.junit.rules.TestName testName
 
 
 
@@ -417,7 +417,7 @@ extends http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 
 
 tableName
-private org.apache.hadoop.hbase.TableName tableName
+private org.apache.hadoop.hbase.TableName tableName
 
 
 
@@ -426,7 +426,7 @@ extends http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 
 
 cluster
-private MiniHBaseCluster cluster
+private MiniHBaseCluster cluster
 
 
 
@@ -435,7 +435,7 @@ extends http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 
 
 master
-private org.apache.hadoop.hbase.master.HMaster master
+private org.apache.hadoop.hbase.master.HMaster master
 
 
 
@@ -444,7 +444,7 @@ extends http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 
 
 conf
-private org.apache.hadoop.conf.Configuration conf
+private org.apache.hadoop.conf.Configuration conf
 
 
 
@@ -453,7 +453,7 @@ extends http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 
 
 name
-public org.junit.rules.TestName name
+public org.junit.rules.TestName name
 
 
 
@@ -470,7 +470,7 @@ extends http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 
 
 AbstractTestDLS
-public AbstractTestDLS()
+public AbstractTestDLS()
 
 
 
@@ -487,7 +487,7 @@ extends http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 
 
 setup
-public static void setup()
+public static void setup()
   throws http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true";
 title="class or interface in java.lang">Exception
 
 Throws:
@@ -501,7 +501,7 @@ extends http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 
 
 tearDown
-public static void tearDown()
+public static void tearDown()
  throws http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true";
 title="class or interface in java.lang">Exception
 
 Throws:
@@ -515,7 +515,7 @@ extends http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 
 
 getWalProvider
-protected abstract http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true";
 title="class or interface in java.lang">String getWalProvider()
+protected abstract http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true";
 title="class or interface in java.lang">String getWalProvider()
 
 
 
@@ -524,7 +524,7 @@ extends http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 
 
 startCluster
-private void startCluster(int numRS)
+private void startCluster(int numRS)
throws http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true";
 title="class or interface in java.lang">Exception
 
 Throws:
@@ -538,7 +538,7 @@ extends http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 
 
 before
-public void before()
+public void before()
 throws http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-ex

hbase-site git commit: INFRA-10751 Empty commit

2018-02-12 Thread git-site-role
Repository: hbase-site
Updated Branches:
  refs/heads/asf-site 2fda40d6c -> 5ffe2146b


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/5ffe2146
Tree: http://git-wip-us.apache.org/repos/asf/hbase-site/tree/5ffe2146
Diff: http://git-wip-us.apache.org/repos/asf/hbase-site/diff/5ffe2146

Branch: refs/heads/asf-site
Commit: 5ffe2146b4d0c214b581589a2d43eae84221bfd4
Parents: 2fda40d
Author: jenkins 
Authored: Mon Feb 12 15:16:58 2018 +
Committer: jenkins 
Committed: Mon Feb 12 15:16:58 2018 +

--

--




[1/6] hbase-site git commit: Published site at .

2018-02-12 Thread git-site-role
Repository: hbase-site
Updated Branches:
  refs/heads/asf-site 0f5c75b81 -> 2fda40d6c


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/2fda40d6/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSink.html
--
diff --git 
a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSink.html
 
b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSink.html
index 0e73425..faa3100 100644
--- 
a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSink.html
+++ 
b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSink.html
@@ -52,358 +52,396 @@
 044import 
org.apache.hadoop.hbase.KeyValue;
 045import 
org.apache.hadoop.hbase.Stoppable;
 046import 
org.apache.hadoop.hbase.TableName;
-047import 
org.apache.hadoop.hbase.client.Connection;
-048import 
org.apache.hadoop.hbase.client.ConnectionFactory;
-049import 
org.apache.hadoop.hbase.client.Get;
-050import 
org.apache.hadoop.hbase.client.RegionLocator;
-051import 
org.apache.hadoop.hbase.client.Result;
-052import 
org.apache.hadoop.hbase.client.ResultScanner;
-053import 
org.apache.hadoop.hbase.client.Scan;
-054import 
org.apache.hadoop.hbase.client.Table;
-055import 
org.apache.hadoop.hbase.testclassification.MediumTests;
-056import 
org.apache.hadoop.hbase.testclassification.ReplicationTests;
-057import 
org.apache.hadoop.hbase.util.Bytes;
-058import 
org.apache.hadoop.hbase.util.FSUtils;
-059import 
org.apache.hadoop.hbase.util.HFileTestUtil;
-060import org.junit.AfterClass;
-061import org.junit.Before;
-062import org.junit.BeforeClass;
-063import org.junit.ClassRule;
-064import org.junit.Test;
-065import 
org.junit.experimental.categories.Category;
-066import org.slf4j.Logger;
-067import org.slf4j.LoggerFactory;
-068
-069import 
org.apache.hbase.thirdparty.com.google.protobuf.UnsafeByteOperations;
-070
-071import 
org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
-072import 
org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.WALEntry;
-073import 
org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.UUID;
-074import 
org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos;
-075import 
org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALKey;
-076
-077@Category({ReplicationTests.class, 
MediumTests.class})
-078public class TestReplicationSink {
-079
-080  @ClassRule
-081  public static final HBaseClassTestRule 
CLASS_RULE =
-082  
HBaseClassTestRule.forClass(TestReplicationSink.class);
+047import 
org.apache.hadoop.hbase.TableNotFoundException;
+048import 
org.apache.hadoop.hbase.client.Admin;
+049import 
org.apache.hadoop.hbase.client.Connection;
+050import 
org.apache.hadoop.hbase.client.ConnectionFactory;
+051import 
org.apache.hadoop.hbase.client.Get;
+052import 
org.apache.hadoop.hbase.client.RegionLocator;
+053import 
org.apache.hadoop.hbase.client.Result;
+054import 
org.apache.hadoop.hbase.client.ResultScanner;
+055import 
org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException;
+056import 
org.apache.hadoop.hbase.client.Scan;
+057import 
org.apache.hadoop.hbase.client.Table;
+058import 
org.apache.hadoop.hbase.testclassification.MediumTests;
+059import 
org.apache.hadoop.hbase.testclassification.ReplicationTests;
+060import 
org.apache.hadoop.hbase.util.Bytes;
+061import 
org.apache.hadoop.hbase.util.FSUtils;
+062import 
org.apache.hadoop.hbase.util.HFileTestUtil;
+063import org.junit.AfterClass;
+064import org.junit.Assert;
+065import org.junit.Before;
+066import org.junit.BeforeClass;
+067import org.junit.ClassRule;
+068import org.junit.Test;
+069import 
org.junit.experimental.categories.Category;
+070import org.slf4j.Logger;
+071import org.slf4j.LoggerFactory;
+072
+073import 
org.apache.hbase.thirdparty.com.google.protobuf.UnsafeByteOperations;
+074
+075import 
org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
+076import 
org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.WALEntry;
+077import 
org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.UUID;
+078import 
org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos;
+079import 
org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALKey;
+080
+081@Category({ReplicationTests.class, 
MediumTests.class})
+082public class TestReplicationSink {
 083
-084  private static final Logger LOG = 
LoggerFactory.getLogger(TestReplicationSink.class);
-085  private static final int BATCH_SIZE = 
10;
-086
-087  protected final static 
HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();
-088
-089  protected static ReplicationSink 
SINK;
+084  @ClassRule
+085  public static final HBaseClassTestRule 
CLASS_RULE =
+086  
HBaseClassTestRule.forClass(TestReplicationSink.class);
+087
+088  private static final Logger LOG = 
LoggerFactory.getLogger(TestReplicationSink.class);

[5/6] hbase-site git commit: Published site at .

2018-02-12 Thread git-site-role
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/2fda40d6/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/mail-lists.html
--
diff --git 
a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/mail-lists.html
 
b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/mail-lists.html
index d46d5a4..eb8456d 100644
--- 
a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/mail-lists.html
+++ 
b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/mail-lists.html
@@ -7,7 +7,7 @@
   
 
 
-
+
 
 Apache HBase - Archetype builder – Project Mailing 
Lists
 
@@ -176,7 +176,7 @@
 https://www.apache.org/";>The Apache Software 
Foundation.
 All rights reserved.  
 
-  Last Published: 
2018-02-11
+  Last Published: 
2018-02-12
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/2fda40d6/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugin-management.html
--
diff --git 
a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugin-management.html
 
b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugin-management.html
index 06713e5..b301714 100644
--- 
a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugin-management.html
+++ 
b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugin-management.html
@@ -7,7 +7,7 @@
   
 
 
-
+
 
 Apache HBase - Archetype builder – Project Plugin 
Management
 
@@ -271,7 +271,7 @@
 https://www.apache.org/";>The Apache Software 
Foundation.
 All rights reserved.  
 
-  Last Published: 
2018-02-11
+  Last Published: 
2018-02-12
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/2fda40d6/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugins.html
--
diff --git 
a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugins.html
 
b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugins.html
index d7f9e4a..20d629a 100644
--- 
a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugins.html
+++ 
b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugins.html
@@ -7,7 +7,7 @@
   
 
 
-
+
 
 Apache HBase - Archetype builder – Project Plugins
 
@@ -214,7 +214,7 @@
 https://www.apache.org/";>The Apache Software 
Foundation.
 All rights reserved.  
 
-  Last Published: 
2018-02-11
+  Last Published: 
2018-02-12
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/2fda40d6/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-info.html
--
diff --git 
a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-info.html
 
b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-info.html
index d73be3e..09e7bd5 100644
--- 
a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-info.html
+++ 
b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-info.html
@@ -7,7 +7,7 @@
   
 
 
-
+
 
 Apache HBase - Archetype builder – Project 
Information
 
@@ -167,7 +167,7 @@
 https://www.apache.org/";>The Apache Software 
Foundation.
 All rights reserved.  
 
-  Last Published: 
2018-02-11
+  Last Published: 
2018-02-12
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/2fda40d6/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-summary.html
--
diff --git 
a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-summary.html
 
b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-summary.html
index a6012db..e6b4007 100644
--- 
a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-summary.html
+++ 
b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-summary.html
@@ -7,7 +7,7 @@
   
 
 
-
+
 
 Apache HBase - Archetype builder – Project Summary
 
@@ -163,7 +163,7 @@
 https://www.apache.org/";>The Apache Software 
Foundation.
 All 

[2/6] hbase-site git commit: Published site at .

2018-02-12 Thread git-site-role
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/2fda40d6/testdevapidocs/src-html/org/apache/hadoop/hbase/master/AbstractTestDLS.html
--
diff --git 
a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/AbstractTestDLS.html 
b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/AbstractTestDLS.html
index c02a436..cdcd37f 100644
--- 
a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/AbstractTestDLS.html
+++ 
b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/AbstractTestDLS.html
@@ -50,39 +50,39 @@
 042import java.util.concurrent.TimeUnit;
 043import 
java.util.concurrent.TimeoutException;
 044import 
java.util.concurrent.atomic.LongAdder;
-045
-046import 
org.apache.hadoop.conf.Configuration;
-047import 
org.apache.hadoop.fs.FSDataOutputStream;
-048import org.apache.hadoop.fs.FileStatus;
-049import org.apache.hadoop.fs.FileSystem;
-050import org.apache.hadoop.fs.Path;
-051import org.apache.hadoop.fs.PathFilter;
-052import 
org.apache.hadoop.hbase.HBaseTestingUtility;
-053import 
org.apache.hadoop.hbase.HConstants;
-054import 
org.apache.hadoop.hbase.KeyValue;
-055import 
org.apache.hadoop.hbase.MiniHBaseCluster;
-056import 
org.apache.hadoop.hbase.NamespaceDescriptor;
-057import 
org.apache.hadoop.hbase.ServerName;
-058import 
org.apache.hadoop.hbase.SplitLogCounters;
-059import 
org.apache.hadoop.hbase.TableName;
-060import org.apache.hadoop.hbase.Waiter;
-061import 
org.apache.hadoop.hbase.client.Put;
-062import 
org.apache.hadoop.hbase.client.RegionInfo;
-063import 
org.apache.hadoop.hbase.client.RegionInfoBuilder;
-064import 
org.apache.hadoop.hbase.client.RegionLocator;
-065import 
org.apache.hadoop.hbase.client.Table;
-066import 
org.apache.hadoop.hbase.coordination.ZKSplitLogManagerCoordination;
-067import 
org.apache.hadoop.hbase.ipc.ServerNotRunningYetException;
-068import 
org.apache.hadoop.hbase.master.SplitLogManager.TaskBatch;
-069import 
org.apache.hadoop.hbase.master.assignment.RegionStates;
-070import 
org.apache.hadoop.hbase.regionserver.HRegion;
-071import 
org.apache.hadoop.hbase.regionserver.HRegionServer;
-072import 
org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl;
-073import 
org.apache.hadoop.hbase.regionserver.Region;
-074import 
org.apache.hadoop.hbase.util.Bytes;
-075import 
org.apache.hadoop.hbase.util.FSUtils;
-076import 
org.apache.hadoop.hbase.util.JVMClusterUtil.MasterThread;
-077import 
org.apache.hadoop.hbase.util.JVMClusterUtil.RegionServerThread;
+045import 
org.apache.hadoop.conf.Configuration;
+046import 
org.apache.hadoop.fs.FSDataOutputStream;
+047import org.apache.hadoop.fs.FileStatus;
+048import org.apache.hadoop.fs.FileSystem;
+049import org.apache.hadoop.fs.Path;
+050import org.apache.hadoop.fs.PathFilter;
+051import 
org.apache.hadoop.hbase.HBaseTestingUtility;
+052import 
org.apache.hadoop.hbase.HConstants;
+053import 
org.apache.hadoop.hbase.KeyValue;
+054import 
org.apache.hadoop.hbase.MiniHBaseCluster;
+055import 
org.apache.hadoop.hbase.NamespaceDescriptor;
+056import 
org.apache.hadoop.hbase.ServerName;
+057import 
org.apache.hadoop.hbase.SplitLogCounters;
+058import 
org.apache.hadoop.hbase.TableName;
+059import org.apache.hadoop.hbase.Waiter;
+060import 
org.apache.hadoop.hbase.client.Put;
+061import 
org.apache.hadoop.hbase.client.RegionInfo;
+062import 
org.apache.hadoop.hbase.client.RegionInfoBuilder;
+063import 
org.apache.hadoop.hbase.client.RegionLocator;
+064import 
org.apache.hadoop.hbase.client.Table;
+065import 
org.apache.hadoop.hbase.coordination.ZKSplitLogManagerCoordination;
+066import 
org.apache.hadoop.hbase.ipc.ServerNotRunningYetException;
+067import 
org.apache.hadoop.hbase.master.SplitLogManager.TaskBatch;
+068import 
org.apache.hadoop.hbase.master.assignment.RegionStates;
+069import 
org.apache.hadoop.hbase.regionserver.HRegion;
+070import 
org.apache.hadoop.hbase.regionserver.HRegionServer;
+071import 
org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl;
+072import 
org.apache.hadoop.hbase.regionserver.Region;
+073import 
org.apache.hadoop.hbase.util.Bytes;
+074import 
org.apache.hadoop.hbase.util.FSUtils;
+075import 
org.apache.hadoop.hbase.util.JVMClusterUtil.MasterThread;
+076import 
org.apache.hadoop.hbase.util.JVMClusterUtil.RegionServerThread;
+077import 
org.apache.hadoop.hbase.util.Threads;
 078import 
org.apache.hadoop.hbase.wal.AbstractFSWALProvider;
 079import org.apache.hadoop.hbase.wal.WAL;
 080import 
org.apache.hadoop.hbase.wal.WALEdit;
@@ -100,693 +100,701 @@
 092import org.junit.rules.TestName;
 093import org.slf4j.Logger;
 094import org.slf4j.LoggerFactory;
-095import 
org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
-096
-097/**
-098 * Base class for testing distributed log 
splitting.
-099 */
-100public abstract class AbstractTestDLS {
-101  private static final Logger LOG = 
LoggerFactory.getLogger(TestSplitLogManager.class);
-102
-103  private static final 
HBaseTestingUtility TES

[6/6] hbase-site git commit: Published site at .

2018-02-12 Thread git-site-role
Published site at .


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

Branch: refs/heads/asf-site
Commit: 2fda40d6cca74e538fd8a98c1a7fff59df3e9348
Parents: 0f5c75b
Author: jenkins 
Authored: Mon Feb 12 15:16:46 2018 +
Committer: jenkins 
Committed: Mon Feb 12 15:16:46 2018 +

--
 acid-semantics.html |4 +-
 apache_hbase_reference_guide.pdf|4 +-
 book.html   |2 +-
 bulk-loads.html |4 +-
 checkstyle-aggregate.html   |   38 +-
 coc.html|4 +-
 cygwin.html |4 +-
 dependencies.html   |4 +-
 dependency-convergence.html |4 +-
 dependency-info.html|4 +-
 dependency-management.html  |4 +-
 devapidocs/constant-values.html |6 +-
 .../regionserver/ReplicationSink.html   |6 +-
 .../org/apache/hadoop/hbase/Version.html|6 +-
 .../regionserver/ReplicationSink.html   |   87 +-
 export_control.html |4 +-
 hbase-annotations/checkstyle.html   |4 +-
 hbase-annotations/dependencies.html |4 +-
 hbase-annotations/dependency-convergence.html   |4 +-
 hbase-annotations/dependency-info.html  |4 +-
 hbase-annotations/dependency-management.html|4 +-
 hbase-annotations/index.html|4 +-
 hbase-annotations/integration.html  |4 +-
 hbase-annotations/issue-tracking.html   |4 +-
 hbase-annotations/license.html  |4 +-
 hbase-annotations/mail-lists.html   |4 +-
 hbase-annotations/plugin-management.html|4 +-
 hbase-annotations/plugins.html  |4 +-
 hbase-annotations/project-info.html |4 +-
 hbase-annotations/project-reports.html  |4 +-
 hbase-annotations/project-summary.html  |4 +-
 hbase-annotations/source-repository.html|4 +-
 hbase-annotations/team-list.html|4 +-
 hbase-build-configuration/dependencies.html |4 +-
 .../dependency-convergence.html |4 +-
 hbase-build-configuration/dependency-info.html  |4 +-
 .../dependency-management.html  |4 +-
 .../hbase-archetypes/dependencies.html  |4 +-
 .../dependency-convergence.html |4 +-
 .../hbase-archetypes/dependency-info.html   |4 +-
 .../hbase-archetypes/dependency-management.html |4 +-
 .../hbase-archetype-builder/dependencies.html   |4 +-
 .../dependency-convergence.html |4 +-
 .../dependency-info.html|4 +-
 .../dependency-management.html  |4 +-
 .../hbase-archetype-builder/index.html  |4 +-
 .../hbase-archetype-builder/integration.html|4 +-
 .../hbase-archetype-builder/issue-tracking.html |4 +-
 .../hbase-archetype-builder/license.html|4 +-
 .../hbase-archetype-builder/mail-lists.html |4 +-
 .../plugin-management.html  |4 +-
 .../hbase-archetype-builder/plugins.html|4 +-
 .../hbase-archetype-builder/project-info.html   |4 +-
 .../project-summary.html|4 +-
 .../source-repository.html  |4 +-
 .../hbase-archetype-builder/team-list.html  |4 +-
 .../hbase-client-project/checkstyle.html|4 +-
 .../hbase-client-project/dependencies.html  |4 +-
 .../dependency-convergence.html |4 +-
 .../hbase-client-project/dependency-info.html   |4 +-
 .../dependency-management.html  |4 +-
 .../hbase-client-project/index.html |4 +-
 .../hbase-client-project/integration.html   |4 +-
 .../hbase-client-project/issue-tracking.html|4 +-
 .../hbase-client-project/license.html   |4 +-
 .../hbase-client-project/mail-lists.html|4 +-
 .../hbase-client-project/plugin-management.html |4 +-
 .../hbase-client-project/plugins.html   |4 +-
 .../hbase-client-project/project-info.html  |4 +-
 .../hbase-client-project/project-reports.html   |4 +-
 .../hbase-client-project/project-summary.html   |4 +-
 .../hbase-client-project/source-repository.html |4 +-
 .../hbase-client-project/team-list.html |4 +-
 .../hbase-shaded-client-project/checkstyle.html |4 +-
 .../dependencies.html

[12/13] hbase git commit: HBASE-19857 Complete the procedure for adding a sync replication peer

2018-02-12 Thread zhangduo
HBASE-19857 Complete the procedure for adding a sync replication peer


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

Branch: refs/heads/HBASE-19064
Commit: 8a3214f7d320d17ad81554b09645715668db494d
Parents: 7905fce
Author: zhangduo 
Authored: Thu Jan 25 20:09:00 2018 +0800
Committer: zhangduo 
Committed: Mon Feb 12 18:10:36 2018 +0800

--
 .../hbase/replication/ReplicationPeer.java  |   9 +
 .../hbase/replication/ReplicationPeerImpl.java  |  28 +--
 .../hbase/replication/ReplicationPeers.java |   3 +-
 .../regionserver/PeerActionListener.java|  10 +-
 .../SyncReplicationPeerProvider.java|  35 +++
 .../SynchronousReplicationPeerProvider.java |  35 ---
 .../hbase/wal/SyncReplicationWALProvider.java   | 234 +++
 .../wal/SynchronousReplicationWALProvider.java  | 225 --
 .../org/apache/hadoop/hbase/wal/WALFactory.java |   8 +-
 .../TestReplicationSourceManager.java   |   3 +
 .../wal/TestSyncReplicationWALProvider.java | 153 
 .../TestSynchronousReplicationWALProvider.java  | 153 
 12 files changed, 456 insertions(+), 440 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/8a3214f7/hbase-replication/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeer.java
--
diff --git 
a/hbase-replication/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeer.java
 
b/hbase-replication/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeer.java
index 2da3cce..0196a9a 100644
--- 
a/hbase-replication/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeer.java
+++ 
b/hbase-replication/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeer.java
@@ -54,6 +54,15 @@ public interface ReplicationPeer {
   PeerState getPeerState();
 
   /**
+   * Returns the sync replication state of the peer by reading local cache.
+   * 
+   * If the peer is not a synchronous replication peer, a {@link 
SyncReplicationState#NONE} will be
+   * returned.
+   * @return the sync replication state
+   */
+  SyncReplicationState getSyncReplicationState();
+
+  /**
* Test whether the peer is enabled.
* @return {@code true} if enabled, otherwise {@code false}.
*/

http://git-wip-us.apache.org/repos/asf/hbase/blob/8a3214f7/hbase-replication/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeerImpl.java
--
diff --git 
a/hbase-replication/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeerImpl.java
 
b/hbase-replication/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeerImpl.java
index d656466..ff3f662 100644
--- 
a/hbase-replication/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeerImpl.java
+++ 
b/hbase-replication/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeerImpl.java
@@ -36,6 +36,8 @@ public class ReplicationPeerImpl implements ReplicationPeer {
 
   private volatile PeerState peerState;
 
+  private volatile SyncReplicationState syncReplicationState;
+
   private final List peerConfigListeners;
 
   /**
@@ -45,12 +47,13 @@ public class ReplicationPeerImpl implements ReplicationPeer 
{
* @param id string representation of this peer's identifier
* @param peerConfig configuration for the replication peer
*/
-  public ReplicationPeerImpl(Configuration conf, String id, boolean peerState,
-  ReplicationPeerConfig peerConfig) {
+  public ReplicationPeerImpl(Configuration conf, String id, 
ReplicationPeerConfig peerConfig,
+  boolean peerState, SyncReplicationState syncReplicationState) {
 this.conf = conf;
 this.id = id;
 this.peerState = peerState ? PeerState.ENABLED : PeerState.DISABLED;
 this.peerConfig = peerConfig;
+this.syncReplicationState = syncReplicationState;
 this.peerConfigListeners = new ArrayList<>();
   }
 
@@ -77,37 +80,26 @@ public class ReplicationPeerImpl implements ReplicationPeer 
{
 return peerState;
   }
 
-  /**
-   * Get the peer config object
-   * @return the ReplicationPeerConfig for this peer
-   */
+  @Override
+  public SyncReplicationState getSyncReplicationState() {
+return syncReplicationState;
+  }
+
   @Override
   public ReplicationPeerConfig getPeerConfig() {
 return peerConfig;
   }
 
-  /**
-   * Get the configuration object required to communicate with this peer
-   * @return configuration object
-   */
   @Override
   public Configuration getConfiguration() {
 return conf;
   }
 
-  /**
-   * Get replicable (table, cf-list) map of

[13/13] hbase git commit: HBASE-19082 Reject read/write from client but accept write from replication in state S

2018-02-12 Thread zhangduo
HBASE-19082 Reject read/write from client but accept write from replication in 
state S


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

Branch: refs/heads/HBASE-19064
Commit: e7d56a3efb8188fb7146c1308ed15ab54c7e6e14
Parents: 735a67e
Author: zhangduo 
Authored: Mon Feb 12 18:20:18 2018 +0800
Committer: zhangduo 
Committed: Mon Feb 12 18:20:18 2018 +0800

--
 .../org/apache/hadoop/hbase/HConstants.java |   3 -
 .../src/main/protobuf/MasterProcedure.proto |   3 +-
 .../hbase/replication/ReplicationUtils.java |   4 +
 ...ransitPeerSyncReplicationStateProcedure.java |  10 +
 .../hadoop/hbase/regionserver/HRegion.java  |   5 +-
 .../hbase/regionserver/HRegionServer.java   |   2 +-
 .../hbase/regionserver/RSRpcServices.java   |  91 +++--
 .../RejectRequestsFromClientStateChecker.java   |  44 
 .../regionserver/ReplicationSink.java   |  72 ---
 .../SyncReplicationPeerInfoProvider.java|  10 +-
 .../SyncReplicationPeerInfoProviderImpl.java|  19 +-
 .../hbase/wal/SyncReplicationWALProvider.java   |   3 +
 .../org/apache/hadoop/hbase/wal/WALFactory.java |   4 +-
 .../hbase/replication/TestSyncReplication.java  | 200 +++
 .../wal/TestSyncReplicationWALProvider.java |   8 +-
 15 files changed, 401 insertions(+), 77 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/e7d56a3e/hbase-common/src/main/java/org/apache/hadoop/hbase/HConstants.java
--
diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/HConstants.java 
b/hbase-common/src/main/java/org/apache/hadoop/hbase/HConstants.java
index 4664778..1cd6f89 100644
--- a/hbase-common/src/main/java/org/apache/hadoop/hbase/HConstants.java
+++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/HConstants.java
@@ -1351,9 +1351,6 @@ public final class HConstants {
 
   public static final String NOT_IMPLEMENTED = "Not implemented";
 
-  // TODO: need to find a better place to hold it.
-  public static final String SYNC_REPLICATION_ENABLED = 
"hbase.replication.sync.enabled";
-
   private HConstants() {
 // Can't be instantiated with this ctor.
   }

http://git-wip-us.apache.org/repos/asf/hbase/blob/e7d56a3e/hbase-protocol-shaded/src/main/protobuf/MasterProcedure.proto
--
diff --git a/hbase-protocol-shaded/src/main/protobuf/MasterProcedure.proto 
b/hbase-protocol-shaded/src/main/protobuf/MasterProcedure.proto
index 8cc5c81..2bf634b 100644
--- a/hbase-protocol-shaded/src/main/protobuf/MasterProcedure.proto
+++ b/hbase-protocol-shaded/src/main/protobuf/MasterProcedure.proto
@@ -382,7 +382,8 @@ enum PeerSyncReplicationStateTransitionState {
   REOPEN_ALL_REGIONS_IN_PEER = 5;
   TRANSIT_PEER_NEW_SYNC_REPLICATION_STATE = 6;
   REFRESH_PEER_SYNC_REPLICATION_STATE_ON_RS_END = 7;
-  POST_PEER_SYNC_REPLICATION_STATE_TRANSITION = 8;
+  CREATE_DIR_FOR_REMOTE_WAL = 8;
+  POST_PEER_SYNC_REPLICATION_STATE_TRANSITION = 9;
 }
 
 message PeerModificationStateData {

http://git-wip-us.apache.org/repos/asf/hbase/blob/e7d56a3e/hbase-replication/src/main/java/org/apache/hadoop/hbase/replication/ReplicationUtils.java
--
diff --git 
a/hbase-replication/src/main/java/org/apache/hadoop/hbase/replication/ReplicationUtils.java
 
b/hbase-replication/src/main/java/org/apache/hadoop/hbase/replication/ReplicationUtils.java
index d633be9..9d0c05d 100644
--- 
a/hbase-replication/src/main/java/org/apache/hadoop/hbase/replication/ReplicationUtils.java
+++ 
b/hbase-replication/src/main/java/org/apache/hadoop/hbase/replication/ReplicationUtils.java
@@ -37,6 +37,10 @@ import org.apache.yetus.audience.InterfaceAudience;
 @InterfaceAudience.Private
 public final class ReplicationUtils {
 
+  public static final String SYNC_REPLICATION_ENABLED = 
"hbase.replication.sync.enabled";
+
+  public static final String REPLICATION_ATTR_NAME = "__rep__";
+
   private ReplicationUtils() {
   }
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/e7d56a3e/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/TransitPeerSyncReplicationStateProcedure.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/TransitPeerSyncReplicationStateProcedure.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/TransitPeerSyncReplicationStateProcedure.java
index c253bff..e53abc0 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replic

[08/13] hbase git commit: HBASE-19781 Add a new cluster state flag for synchronous replication

2018-02-12 Thread zhangduo
HBASE-19781 Add a new cluster state flag for synchronous replication


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

Branch: refs/heads/HBASE-19064
Commit: 7905fce127dc6d9749e84036fcc6005950636aa4
Parents: 4f31f5e
Author: Guanghao Zhang 
Authored: Mon Jan 22 11:44:49 2018 +0800
Committer: zhangduo 
Committed: Mon Feb 12 18:10:36 2018 +0800

--
 .../org/apache/hadoop/hbase/client/Admin.java   |  39 +
 .../apache/hadoop/hbase/client/AsyncAdmin.java  |  31 
 .../hadoop/hbase/client/AsyncHBaseAdmin.java|   7 +
 .../hbase/client/ConnectionImplementation.java  |   9 ++
 .../apache/hadoop/hbase/client/HBaseAdmin.java  |  26 +++
 .../hadoop/hbase/client/RawAsyncHBaseAdmin.java |  15 ++
 .../client/ShortCircuitMasterConnection.java|   9 ++
 .../replication/ReplicationPeerConfigUtil.java  |  26 +--
 .../replication/ReplicationPeerDescription.java |  10 +-
 .../hbase/replication/SyncReplicationState.java |  48 ++
 .../hbase/shaded/protobuf/RequestConverter.java |  10 ++
 .../src/main/protobuf/Master.proto  |   4 +
 .../src/main/protobuf/MasterProcedure.proto |   6 +-
 .../src/main/protobuf/Replication.proto |  20 +++
 .../replication/ReplicationPeerStorage.java |  18 ++-
 .../hbase/replication/ReplicationUtils.java |   1 +
 .../replication/ZKReplicationPeerStorage.java   |  60 +--
 .../replication/TestReplicationStateBasic.java  |  23 ++-
 .../TestZKReplicationPeerStorage.java   |  12 +-
 .../hbase/coprocessor/MasterObserver.java   |  23 +++
 .../org/apache/hadoop/hbase/master/HMaster.java |  12 ++
 .../hbase/master/MasterCoprocessorHost.java |  21 +++
 .../hadoop/hbase/master/MasterRpcServices.java  |  17 ++
 .../hadoop/hbase/master/MasterServices.java |   9 ++
 .../procedure/PeerProcedureInterface.java   |   2 +-
 .../replication/ReplicationPeerManager.java |  51 +-
 ...ransitPeerSyncReplicationStateProcedure.java | 159 +++
 .../hbase/security/access/AccessController.java |   8 +
 .../replication/TestReplicationAdmin.java   |  62 
 .../hbase/master/MockNoopMasterServices.java|  11 +-
 .../cleaner/TestReplicationHFileCleaner.java|   4 +-
 .../TestReplicationTrackerZKImpl.java   |   6 +-
 .../TestReplicationSourceManager.java   |   3 +-
 .../security/access/TestAccessController.java   |  16 ++
 .../hbase/util/TestHBaseFsckReplication.java|   5 +-
 .../src/main/ruby/hbase/replication_admin.rb|  15 ++
 hbase-shell/src/main/ruby/shell.rb  |   1 +
 .../src/main/ruby/shell/commands/list_peers.rb  |   6 +-
 .../transit_peer_sync_replication_state.rb  |  44 +
 .../test/ruby/hbase/replication_admin_test.rb   |  24 +++
 40 files changed, 818 insertions(+), 55 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/7905fce1/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java
--
diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java
index b8546fa..167d6f3 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java
@@ -52,6 +52,7 @@ import 
org.apache.hadoop.hbase.regionserver.wal.FailedLogCloseException;
 import org.apache.hadoop.hbase.replication.ReplicationException;
 import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;
 import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;
+import org.apache.hadoop.hbase.replication.SyncReplicationState;
 import org.apache.hadoop.hbase.snapshot.HBaseSnapshotException;
 import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;
 import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;
@@ -2648,6 +2649,44 @@ public interface Admin extends Abortable, Closeable {
   List listReplicationPeers(Pattern pattern) 
throws IOException;
 
   /**
+   * Transit current cluster to a new state in a synchronous replication peer.
+   * @param peerId a short name that identifies the peer
+   * @param state a new state of current cluster
+   * @throws IOException if a remote or network exception occurs
+   */
+  void transitReplicationPeerSyncReplicationState(String peerId, 
SyncReplicationState state)
+  throws IOException;
+
+  /**
+   * Transit current cluster to a new state in a synchronous replication peer. 
But does not block
+   * and wait for it.
+   * 
+   * You can use Future.get(long, TimeUnit) to wait on the operation to 
complete. It may throw
+   * Exe

[06/13] hbase git commit: HBASE-19083 Introduce a new log writer which can write to two HDFSes

2018-02-12 Thread zhangduo
HBASE-19083 Introduce a new log writer which can write to two HDFSes


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

Branch: refs/heads/HBASE-19064
Commit: 18419c16bcf27ef95b87003cb713e87c55e5cf7c
Parents: 8ff783f
Author: zhangduo 
Authored: Thu Jan 11 21:08:02 2018 +0800
Committer: zhangduo 
Committed: Mon Feb 12 18:10:36 2018 +0800

--
 .../hbase/regionserver/wal/AsyncFSWAL.java  |  16 ++-
 .../regionserver/wal/CombinedAsyncWriter.java   | 134 ++
 .../hbase/regionserver/wal/DualAsyncFSWAL.java  |  67 +
 .../wal/AbstractTestProtobufLog.java| 110 +++
 .../regionserver/wal/ProtobufLogTestHelper.java |  99 ++
 .../regionserver/wal/TestAsyncProtobufLog.java  |  32 +
 .../wal/TestCombinedAsyncWriter.java| 136 +++
 .../hbase/regionserver/wal/TestProtobufLog.java |  14 +-
 .../regionserver/wal/WriterOverAsyncWriter.java |  63 +
 9 files changed, 531 insertions(+), 140 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/18419c16/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.java
index 19d89df..8e57441 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.java
@@ -606,12 +606,16 @@ public class AsyncFSWAL extends 
AbstractFSWAL {
 }
   }
 
-  @Override
-  protected AsyncWriter createWriterInstance(Path path) throws IOException {
+  protected final AsyncWriter createAsyncWriter(FileSystem fs, Path path) 
throws IOException {
 return AsyncFSWALProvider.createAsyncWriter(conf, fs, path, false, 
eventLoopGroup,
   channelClass);
   }
 
+  @Override
+  protected AsyncWriter createWriterInstance(Path path) throws IOException {
+return createAsyncWriter(fs, path);
+  }
+
   private void waitForSafePoint() {
 consumeLock.lock();
 try {
@@ -654,13 +658,13 @@ public class AsyncFSWAL extends 
AbstractFSWAL {
 } finally {
   consumeLock.unlock();
 }
-return executeClose(closeExecutor, oldWriter);
+return executeClose(oldWriter);
   }
 
   @Override
   protected void doShutdown() throws IOException {
 waitForSafePoint();
-executeClose(closeExecutor, writer);
+executeClose(writer);
 closeExecutor.shutdown();
 try {
   if (!closeExecutor.awaitTermination(waitOnShutdownInSeconds, 
TimeUnit.SECONDS)) {
@@ -698,7 +702,7 @@ public class AsyncFSWAL extends AbstractFSWAL {
 }
   }
 
-  private static long executeClose(ExecutorService closeExecutor, AsyncWriter 
writer) {
+  protected final long executeClose(AsyncWriter writer) {
 long fileLength;
 if (writer != null) {
   fileLength = writer.getLength();
@@ -706,7 +710,7 @@ public class AsyncFSWAL extends AbstractFSWAL {
 try {
   writer.close();
 } catch (IOException e) {
-  LOG.warn("close old writer failed", e);
+  LOG.warn("close writer failed", e);
 }
   });
 } else {

http://git-wip-us.apache.org/repos/asf/hbase/blob/18419c16/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/CombinedAsyncWriter.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/CombinedAsyncWriter.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/CombinedAsyncWriter.java
new file mode 100644
index 000..8ecfede
--- /dev/null
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/CombinedAsyncWriter.java
@@ -0,0 +1,134 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the 

[07/13] hbase git commit: HBASE-19781 Add a new cluster state flag for synchronous replication

2018-02-12 Thread zhangduo
http://git-wip-us.apache.org/repos/asf/hbase/blob/7905fce1/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsckReplication.java
--
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsckReplication.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsckReplication.java
index 8911982..f5eca39 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsckReplication.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsckReplication.java
@@ -28,6 +28,7 @@ import 
org.apache.hadoop.hbase.replication.ReplicationPeerConfig;
 import org.apache.hadoop.hbase.replication.ReplicationPeerStorage;
 import org.apache.hadoop.hbase.replication.ReplicationQueueStorage;
 import org.apache.hadoop.hbase.replication.ReplicationStorageFactory;
+import org.apache.hadoop.hbase.replication.SyncReplicationState;
 import org.apache.hadoop.hbase.testclassification.MediumTests;
 import org.apache.hadoop.hbase.testclassification.ReplicationTests;
 import org.apache.hadoop.hbase.util.HBaseFsck.ErrorReporter.ERROR_CODE;
@@ -67,9 +68,9 @@ public class TestHBaseFsckReplication {
 String peerId1 = "1";
 String peerId2 = "2";
 peerStorage.addPeer(peerId1, 
ReplicationPeerConfig.newBuilder().setClusterKey("key").build(),
-  true);
+  true, SyncReplicationState.NONE);
 peerStorage.addPeer(peerId2, 
ReplicationPeerConfig.newBuilder().setClusterKey("key").build(),
-  true);
+  true, SyncReplicationState.NONE);
 for (int i = 0; i < 10; i++) {
   queueStorage.addWAL(ServerName.valueOf("localhost", 1 + i, 10 + 
i), peerId1,
 "file-" + i);

http://git-wip-us.apache.org/repos/asf/hbase/blob/7905fce1/hbase-shell/src/main/ruby/hbase/replication_admin.rb
--
diff --git a/hbase-shell/src/main/ruby/hbase/replication_admin.rb 
b/hbase-shell/src/main/ruby/hbase/replication_admin.rb
index ba7d191..d5d4844 100644
--- a/hbase-shell/src/main/ruby/hbase/replication_admin.rb
+++ b/hbase-shell/src/main/ruby/hbase/replication_admin.rb
@@ -20,6 +20,7 @@
 include Java
 
 java_import 
org.apache.hadoop.hbase.client.replication.ReplicationPeerConfigUtil
+java_import org.apache.hadoop.hbase.replication.SyncReplicationState
 java_import org.apache.hadoop.hbase.replication.ReplicationPeerConfig
 java_import org.apache.hadoop.hbase.util.Bytes
 java_import org.apache.hadoop.hbase.zookeeper.ZKConfig
@@ -329,6 +330,20 @@ module Hbase
   '!' + ReplicationPeerConfigUtil.convertToString(tableCFs)
 end
 
+# Transit current cluster to a new state in the specified synchronous
+# replication peer
+def transit_peer_sync_replication_state(id, state)
+  if 'ACTIVE'.eql?(state)
+@admin.transitReplicationPeerSyncReplicationState(id, 
SyncReplicationState::ACTIVE)
+  elsif 'DOWNGRADE_ACTIVE'.eql?(state)
+@admin.transitReplicationPeerSyncReplicationState(id, 
SyncReplicationState::DOWNGRADE_ACTIVE)
+  elsif 'STANDBY'.eql?(state)
+@admin.transitReplicationPeerSyncReplicationState(id, 
SyncReplicationState::STANDBY)
+  else
+raise(ArgumentError, 'synchronous replication state must be ACTIVE, 
DOWNGRADE_ACTIVE or STANDBY')
+  end
+end
+
 
#--
 # Enables a table's replication switch
 def enable_tablerep(table_name)

http://git-wip-us.apache.org/repos/asf/hbase/blob/7905fce1/hbase-shell/src/main/ruby/shell.rb
--
diff --git a/hbase-shell/src/main/ruby/shell.rb 
b/hbase-shell/src/main/ruby/shell.rb
index 507c0a9..0ed71ae 100644
--- a/hbase-shell/src/main/ruby/shell.rb
+++ b/hbase-shell/src/main/ruby/shell.rb
@@ -395,6 +395,7 @@ Shell.load_command_group(
 get_peer_config
 list_peer_configs
 update_peer_config
+transit_peer_sync_replication_state
   ]
 )
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/7905fce1/hbase-shell/src/main/ruby/shell/commands/list_peers.rb
--
diff --git a/hbase-shell/src/main/ruby/shell/commands/list_peers.rb 
b/hbase-shell/src/main/ruby/shell/commands/list_peers.rb
index caeab86..aa10fda 100644
--- a/hbase-shell/src/main/ruby/shell/commands/list_peers.rb
+++ b/hbase-shell/src/main/ruby/shell/commands/list_peers.rb
@@ -39,8 +39,8 @@ EOF
 peers = replication_admin.list_peers
 
 formatter.header(%w[PEER_ID CLUSTER_KEY ENDPOINT_CLASSNAME
-REMOTE_ROOT_DIR STATE REPLICATE_ALL
-NAMESPACES TABLE_CFS BANDWIDTH])
+REMOTE_ROOT_DIR SYNC_REPLICATION_STATE STATE
+REPLICATE_ALL NAMESPACES TABLE_CFS BANDWIDTH])
 
 peers.each

[03/13] hbase git commit: HBASE-19935 Only allow table replication for sync replication for now

2018-02-12 Thread zhangduo
HBASE-19935 Only allow table replication for sync replication for now


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

Branch: refs/heads/HBASE-19064
Commit: 3bf456955f8e2a96d22259c6900a45d7ad0b1abc
Parents: 0a3c9c1
Author: Guanghao Zhang 
Authored: Tue Feb 6 16:00:59 2018 +0800
Committer: zhangduo 
Committed: Mon Feb 12 18:10:36 2018 +0800

--
 .../replication/ReplicationPeerConfig.java  |  9 +++
 .../replication/ReplicationPeerManager.java | 34 -
 .../replication/TestReplicationAdmin.java   | 73 ++--
 .../wal/TestCombinedAsyncWriter.java|  6 ++
 .../wal/TestSyncReplicationWALProvider.java |  6 ++
 5 files changed, 102 insertions(+), 26 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/3bf45695/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeerConfig.java
--
diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeerConfig.java
 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeerConfig.java
index 4c10c46..69565a7 100644
--- 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeerConfig.java
+++ 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeerConfig.java
@@ -25,6 +25,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.TreeMap;
+
+import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.hbase.TableName;
 import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.yetus.audience.InterfaceAudience;
@@ -217,6 +219,13 @@ public class ReplicationPeerConfig {
 return this.remoteWALDir;
   }
 
+  /**
+   * Use remote wal dir to decide whether a peer is sync replication peer
+   */
+  public boolean isSyncReplication() {
+return !StringUtils.isBlank(this.remoteWALDir);
+  }
+
   public static ReplicationPeerConfigBuilder newBuilder() {
 return new ReplicationPeerConfigBuilderImpl();
   }

http://git-wip-us.apache.org/repos/asf/hbase/blob/3bf45695/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java
index 9336fbd..6bfd9c9 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.java
@@ -167,7 +167,7 @@ public class ReplicationPeerManager {
   " does not match new remote wal dir '" + 
peerConfig.getRemoteWALDir() + "'");
 }
 
-if (oldPeerConfig.getRemoteWALDir() != null) {
+if (oldPeerConfig.isSyncReplication()) {
   if (!ReplicationUtils.isKeyConfigEqual(oldPeerConfig, peerConfig)) {
 throw new DoNotRetryIOException(
 "Changing the replicated namespace/table config on a synchronous 
replication "
@@ -195,8 +195,8 @@ public class ReplicationPeerManager {
 }
 ReplicationPeerConfig copiedPeerConfig = 
ReplicationPeerConfig.newBuilder(peerConfig).build();
 SyncReplicationState syncReplicationState =
-StringUtils.isBlank(peerConfig.getRemoteWALDir()) ? 
SyncReplicationState.NONE
-: SyncReplicationState.DOWNGRADE_ACTIVE;
+copiedPeerConfig.isSyncReplication() ? 
SyncReplicationState.DOWNGRADE_ACTIVE
+: SyncReplicationState.NONE;
 peerStorage.addPeer(peerId, copiedPeerConfig, enabled, 
syncReplicationState);
 peers.put(peerId,
   new ReplicationPeerDescription(peerId, enabled, copiedPeerConfig, 
syncReplicationState));
@@ -316,9 +316,37 @@ public class ReplicationPeerManager {
 peerConfig.getTableCFsMap());
 }
 
+if (peerConfig.isSyncReplication()) {
+  checkPeerConfigForSyncReplication(peerConfig);
+}
+
 checkConfiguredWALEntryFilters(peerConfig);
   }
 
+  private void checkPeerConfigForSyncReplication(ReplicationPeerConfig 
peerConfig)
+  throws DoNotRetryIOException {
+// This is used to reduce the difficulty for implementing the sync 
replication state transition
+// as we need to reopen all the related regions.
+// TODO: Add namespace, replicat_all flag back
+if (peerConfig.replicateAllUserTables()) {
+  throw new DoNotRetryIOException(
+  "Only support replicated table config for syn

[11/13] hbase git commit: HBASE-19078 Add a remote peer cluster wal directory config for synchronous replication

2018-02-12 Thread zhangduo
HBASE-19078 Add a remote peer cluster wal directory config for synchronous 
replication

Signed-off-by: zhangduo 


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

Branch: refs/heads/HBASE-19064
Commit: 2e19dcb5820b358910b6a61a2cb34f8e09bcb94d
Parents: 18419c1
Author: Guanghao Zhang 
Authored: Sat Jan 13 18:55:28 2018 +0800
Committer: zhangduo 
Committed: Mon Feb 12 18:10:36 2018 +0800

--
 .../replication/ReplicationPeerConfigUtil.java  |  6 ++
 .../replication/ReplicationPeerConfig.java  | 21 +-
 .../ReplicationPeerConfigBuilder.java   |  7 ++
 .../src/main/protobuf/Replication.proto |  1 +
 .../replication/ReplicationPeerManager.java | 15 
 .../replication/TestReplicationAdmin.java   | 77 
 .../src/main/ruby/hbase/replication_admin.rb| 17 +++--
 hbase-shell/src/main/ruby/hbase_constants.rb|  1 +
 .../src/main/ruby/shell/commands/add_peer.rb| 21 +-
 .../src/main/ruby/shell/commands/list_peers.rb  | 19 -
 .../test/ruby/hbase/replication_admin_test.rb   | 16 
 11 files changed, 188 insertions(+), 13 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/2e19dcb5/hbase-client/src/main/java/org/apache/hadoop/hbase/client/replication/ReplicationPeerConfigUtil.java
--
diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/replication/ReplicationPeerConfigUtil.java
 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/replication/ReplicationPeerConfigUtil.java
index a234a9b..642149b 100644
--- 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/replication/ReplicationPeerConfigUtil.java
+++ 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/replication/ReplicationPeerConfigUtil.java
@@ -315,6 +315,9 @@ public final class ReplicationPeerConfigUtil {
 
excludeNamespacesList.stream().map(ByteString::toStringUtf8).collect(Collectors.toSet()));
 }
 
+if (peer.hasRemoteWALDir()) {
+  builder.setRemoteWALDir(peer.getRemoteWALDir());
+}
 return builder.build();
   }
 
@@ -371,6 +374,9 @@ public final class ReplicationPeerConfigUtil {
   }
 }
 
+if (peerConfig.getRemoteWALDir() != null) {
+  builder.setRemoteWALDir(peerConfig.getRemoteWALDir());
+}
 return builder.build();
   }
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/2e19dcb5/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeerConfig.java
--
diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeerConfig.java
 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeerConfig.java
index bf8d030..4c10c46 100644
--- 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeerConfig.java
+++ 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeerConfig.java
@@ -46,6 +46,8 @@ public class ReplicationPeerConfig {
   private Map> excludeTableCFsMap = 
null;
   private Set excludeNamespaces = null;
   private long bandwidth = 0;
+  // Used by synchronous replication
+  private String remoteWALDir;
 
   private ReplicationPeerConfig(ReplicationPeerConfigBuilderImpl builder) {
 this.clusterKey = builder.clusterKey;
@@ -64,6 +66,7 @@ public class ReplicationPeerConfig {
 builder.excludeNamespaces != null ? 
Collections.unmodifiableSet(builder.excludeNamespaces)
 : null;
 this.bandwidth = builder.bandwidth;
+this.remoteWALDir = builder.remoteWALDir;
   }
 
   private Map>
@@ -210,6 +213,10 @@ public class ReplicationPeerConfig {
 return this;
   }
 
+  public String getRemoteWALDir() {
+return this.remoteWALDir;
+  }
+
   public static ReplicationPeerConfigBuilder newBuilder() {
 return new ReplicationPeerConfigBuilderImpl();
   }
@@ -223,7 +230,8 @@ public class ReplicationPeerConfig {
 .setReplicateAllUserTables(peerConfig.replicateAllUserTables())
 .setExcludeTableCFsMap(peerConfig.getExcludeTableCFsMap())
 .setExcludeNamespaces(peerConfig.getExcludeNamespaces())
-.setBandwidth(peerConfig.getBandwidth());
+.setBandwidth(peerConfig.getBandwidth())
+.setRemoteWALDir(peerConfig.getRemoteWALDir());
 return builder;
   }
 
@@ -250,6 +258,8 @@ public class ReplicationPeerConfig {
 
 private long bandwidth = 0;
 
+private String remoteWALDir = null;
+
 @Override
 public ReplicationPeerConfigBuilder setClusterKey(String clusterKey) {
   this.clusterKey = clusterKey;
@@ -313

[10/13] hbase git commit: HBASE-19957 General framework to transit sync replication state

2018-02-12 Thread zhangduo
HBASE-19957 General framework to transit sync replication state


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

Branch: refs/heads/HBASE-19064
Commit: 735a67ed46c58b1d2f8c109b1a664b44c02c9108
Parents: 3bf4569
Author: zhangduo 
Authored: Fri Feb 9 18:33:28 2018 +0800
Committer: zhangduo 
Committed: Mon Feb 12 18:10:36 2018 +0800

--
 .../replication/ReplicationPeerConfig.java  |   2 -
 .../replication/ReplicationPeerDescription.java |   5 +-
 .../hbase/replication/SyncReplicationState.java |  19 +-
 .../org/apache/hadoop/hbase/HConstants.java |   3 +
 .../src/main/protobuf/MasterProcedure.proto |  20 ++-
 .../hbase/replication/ReplicationPeerImpl.java  |  45 -
 .../replication/ReplicationPeerStorage.java |  25 ++-
 .../hbase/replication/ReplicationPeers.java |  27 ++-
 .../replication/ZKReplicationPeerStorage.java   |  65 +--
 .../hbase/coprocessor/MasterObserver.java   |   7 +-
 .../org/apache/hadoop/hbase/master/HMaster.java |   4 +-
 .../hbase/master/MasterCoprocessorHost.java |  12 +-
 .../replication/AbstractPeerProcedure.java  |  14 +-
 .../master/replication/ModifyPeerProcedure.java |  15 +-
 .../replication/RefreshPeerProcedure.java   |  18 +-
 .../replication/ReplicationPeerManager.java | 107 +++-
 ...ransitPeerSyncReplicationStateProcedure.java | 175 ---
 .../hbase/regionserver/HRegionServer.java   |  35 ++--
 .../regionserver/ReplicationSourceService.java  |  11 +-
 .../regionserver/PeerActionListener.java|   4 +-
 .../regionserver/PeerProcedureHandler.java  |  16 +-
 .../regionserver/PeerProcedureHandlerImpl.java  |  55 +-
 .../regionserver/RefreshPeerCallable.java   |   7 +
 .../replication/regionserver/Replication.java   |  22 ++-
 .../regionserver/ReplicationSourceManager.java  |  41 +++--
 .../SyncReplicationPeerInfoProvider.java|  43 +
 .../SyncReplicationPeerInfoProviderImpl.java|  71 
 .../SyncReplicationPeerMappingManager.java  |  48 +
 .../SyncReplicationPeerProvider.java|  35 
 .../hbase/wal/SyncReplicationWALProvider.java   |  35 ++--
 .../org/apache/hadoop/hbase/wal/WALFactory.java |  47 ++---
 .../replication/TestReplicationAdmin.java   |   3 +-
 .../TestReplicationSourceManager.java   |   5 +-
 .../wal/TestSyncReplicationWALProvider.java |  36 ++--
 34 files changed, 752 insertions(+), 325 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/735a67ed/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeerConfig.java
--
diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeerConfig.java
 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeerConfig.java
index 69565a7..79b3a1d 100644
--- 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeerConfig.java
+++ 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeerConfig.java
@@ -15,7 +15,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 package org.apache.hadoop.hbase.replication;
 
 import java.util.Collection;
@@ -25,7 +24,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.TreeMap;
-
 import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.hbase.TableName;
 import org.apache.hadoop.hbase.util.Bytes;

http://git-wip-us.apache.org/repos/asf/hbase/blob/735a67ed/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeerDescription.java
--
diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeerDescription.java
 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeerDescription.java
index 2d077c5..b0c27bb 100644
--- 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeerDescription.java
+++ 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeerDescription.java
@@ -20,7 +20,10 @@ package org.apache.hadoop.hbase.replication;
 import org.apache.yetus.audience.InterfaceAudience;
 
 /**
- * The POJO equivalent of ReplicationProtos.ReplicationPeerDescription
+ * The POJO equivalent of ReplicationProtos.ReplicationPeerDescription.
+ * 
+ * To developer, here we do not store the new sync replication state since it 
is just an
+ * intermediate state and this class is public.
  */
 @InterfaceAudience.Public
 pu

[04/13] hbase git commit: HBASE-19747 Introduce a special WALProvider for synchronous replication

2018-02-12 Thread zhangduo
HBASE-19747 Introduce a special WALProvider for synchronous replication


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

Branch: refs/heads/HBASE-19064
Commit: 4f31f5e1eb9d58145ee0e30a9957f2d8c8463af4
Parents: 2e19dcb
Author: zhangduo 
Authored: Fri Jan 19 18:38:39 2018 +0800
Committer: zhangduo 
Committed: Mon Feb 12 18:10:36 2018 +0800

--
 .../hbase/regionserver/wal/AbstractFSWAL.java   |   7 +
 .../hbase/regionserver/wal/AsyncFSWAL.java  |   1 -
 .../hbase/regionserver/wal/DualAsyncFSWAL.java  |   4 +-
 .../hadoop/hbase/regionserver/wal/FSHLog.java   |   3 -
 .../regionserver/PeerActionListener.java|  33 +++
 .../SynchronousReplicationPeerProvider.java |  35 +++
 .../hadoop/hbase/wal/AbstractFSWALProvider.java |   1 +
 .../hadoop/hbase/wal/AsyncFSWALProvider.java|  18 +-
 .../hbase/wal/NettyAsyncFSWALConfigHelper.java  |   8 +-
 .../hbase/wal/RegionGroupingProvider.java   |  13 +-
 .../wal/SynchronousReplicationWALProvider.java  | 225 +++
 .../org/apache/hadoop/hbase/wal/WALFactory.java |  37 ++-
 .../org/apache/hadoop/hbase/wal/WALKeyImpl.java |  16 +-
 .../regionserver/TestCompactionPolicy.java  |   1 +
 .../regionserver/TestFailedAppendAndSync.java   | 122 +-
 .../hadoop/hbase/regionserver/TestHRegion.java  |  24 +-
 .../TestHRegionWithInMemoryFlush.java   |   7 -
 .../hbase/regionserver/TestRegionIncrement.java |  20 +-
 .../hbase/regionserver/TestWALLockup.java   |   1 +
 .../regionserver/wal/AbstractTestWALReplay.java |   1 +
 .../regionserver/wal/ProtobufLogTestHelper.java |  44 +++-
 .../hbase/regionserver/wal/TestAsyncFSWAL.java  |  13 +-
 .../regionserver/wal/TestAsyncWALReplay.java|   4 +-
 .../wal/TestCombinedAsyncWriter.java|   3 +-
 .../hbase/regionserver/wal/TestFSHLog.java  |  15 +-
 .../hbase/regionserver/wal/TestWALReplay.java   |   1 +
 .../apache/hadoop/hbase/wal/IOTestProvider.java |   2 -
 .../TestSynchronousReplicationWALProvider.java  | 153 +
 28 files changed, 659 insertions(+), 153 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/4f31f5e1/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.java
index 14fbe10..31b1c54 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.java
@@ -430,6 +430,13 @@ public abstract class AbstractFSWAL 
implements WAL {
 this.implClassName = getClass().getSimpleName();
   }
 
+  /**
+   * Used to initialize the WAL. Usually just call rollWriter to create the 
first log writer.
+   */
+  public void init() throws IOException {
+rollWriter();
+  }
+
   @Override
   public void registerWALActionsListener(WALActionsListener listener) {
 this.listeners.add(listener);

http://git-wip-us.apache.org/repos/asf/hbase/blob/4f31f5e1/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.java
index 8e57441..ac72dc7 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.java
@@ -247,7 +247,6 @@ public class AsyncFSWAL extends AbstractFSWAL {
 batchSize = conf.getLong(WAL_BATCH_SIZE, DEFAULT_WAL_BATCH_SIZE);
 waitOnShutdownInSeconds = 
conf.getInt(ASYNC_WAL_WAIT_ON_SHUTDOWN_IN_SECONDS,
   DEFAULT_ASYNC_WAL_WAIT_ON_SHUTDOWN_IN_SECONDS);
-rollWriter();
   }
 
   private static boolean waitingRoll(int epochAndState) {

http://git-wip-us.apache.org/repos/asf/hbase/blob/4f31f5e1/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/DualAsyncFSWAL.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/DualAsyncFSWAL.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/DualAsyncFSWAL.java
index 6bf9e02..f92ce93 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/DualAsyncFSWAL.java
+++ 
b/hbase-ser

[02/13] hbase git commit: HBASE-19554 Dump thread info before failure

2018-02-12 Thread zhangduo
HBASE-19554 Dump thread info before failure


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

Branch: refs/heads/HBASE-19064
Commit: 8ff783f76d370199b81a24c48feaad1aa980285e
Parents: 629eaf8
Author: zhangduo 
Authored: Mon Feb 12 16:01:33 2018 +0800
Committer: zhangduo 
Committed: Mon Feb 12 16:03:52 2018 +0800

--
 .../org/apache/hadoop/hbase/master/AbstractTestDLS.java | 12 ++--
 1 file changed, 10 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/8ff783f7/hbase-server/src/test/java/org/apache/hadoop/hbase/master/AbstractTestDLS.java
--
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/AbstractTestDLS.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/AbstractTestDLS.java
index 73718b9..1f9fc5d 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/AbstractTestDLS.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/AbstractTestDLS.java
@@ -42,7 +42,6 @@ import java.util.concurrent.Future;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
 import java.util.concurrent.atomic.LongAdder;
-
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FSDataOutputStream;
 import org.apache.hadoop.fs.FileStatus;
@@ -75,6 +74,7 @@ import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.hadoop.hbase.util.FSUtils;
 import org.apache.hadoop.hbase.util.JVMClusterUtil.MasterThread;
 import org.apache.hadoop.hbase.util.JVMClusterUtil.RegionServerThread;
+import org.apache.hadoop.hbase.util.Threads;
 import org.apache.hadoop.hbase.wal.AbstractFSWALProvider;
 import org.apache.hadoop.hbase.wal.WAL;
 import org.apache.hadoop.hbase.wal.WALEdit;
@@ -92,6 +92,7 @@ import org.junit.Test;
 import org.junit.rules.TestName;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+
 import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
 
 /**
@@ -398,7 +399,14 @@ public abstract class AbstractTestDLS {
 }
   });
   TEST_UTIL.waitUntilAllRegionsAssigned(tableName);
-  assertEquals(numRegionsToCreate * numRowsPerRegion, 
TEST_UTIL.countRows(table));
+  int rows;
+  try {
+rows = TEST_UTIL.countRows(table);
+  } catch (Exception e) {
+Threads.printThreadInfo(System.out, "Thread dump before fail");
+throw e;
+  }
+  assertEquals(numRegionsToCreate * numRowsPerRegion, rows);
 }
   }
 



[01/13] hbase git commit: HBASE-19972 Should rethrow the RetriesExhaustedWithDetailsException when failed to apply the batch in ReplicationSink [Forced Update!]

2018-02-12 Thread zhangduo
Repository: hbase
Updated Branches:
  refs/heads/HBASE-19064 c37869259 -> e7d56a3ef (forced update)


HBASE-19972 Should rethrow the RetriesExhaustedWithDetailsException when failed 
to apply the batch in ReplicationSink


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

Branch: refs/heads/HBASE-19064
Commit: 629eaf8b74a443fb9f6c5c99b5b3174bc91514ba
Parents: 0593dda
Author: huzheng 
Authored: Sun Feb 11 14:48:21 2018 +0800
Committer: huzheng 
Committed: Sun Feb 11 14:48:21 2018 +0800

--
 .../regionserver/ReplicationSink.java   |  3 +-
 .../regionserver/TestReplicationSink.java   | 38 
 2 files changed, 40 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/629eaf8b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSink.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSink.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSink.java
index 902971e..5a05660 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSink.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSink.java
@@ -404,9 +404,10 @@ public class ReplicationSink {
 } catch (RetriesExhaustedWithDetailsException rewde) {
   for (Throwable ex : rewde.getCauses()) {
 if (ex instanceof TableNotFoundException) {
-  throw new TableNotFoundException("'"+tableName+"'");
+  throw new TableNotFoundException("'" + tableName + "'");
 }
   }
+  throw rewde;
 } catch (InterruptedException ix) {
   throw (InterruptedIOException) new 
InterruptedIOException().initCause(ix);
 } finally {

http://git-wip-us.apache.org/repos/asf/hbase/blob/629eaf8b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSink.java
--
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSink.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSink.java
index 4629c68..fcce84f 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSink.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSink.java
@@ -44,12 +44,15 @@ import org.apache.hadoop.hbase.HRegionInfo;
 import org.apache.hadoop.hbase.KeyValue;
 import org.apache.hadoop.hbase.Stoppable;
 import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.TableNotFoundException;
+import org.apache.hadoop.hbase.client.Admin;
 import org.apache.hadoop.hbase.client.Connection;
 import org.apache.hadoop.hbase.client.ConnectionFactory;
 import org.apache.hadoop.hbase.client.Get;
 import org.apache.hadoop.hbase.client.RegionLocator;
 import org.apache.hadoop.hbase.client.Result;
 import org.apache.hadoop.hbase.client.ResultScanner;
+import org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException;
 import org.apache.hadoop.hbase.client.Scan;
 import org.apache.hadoop.hbase.client.Table;
 import org.apache.hadoop.hbase.testclassification.MediumTests;
@@ -58,6 +61,7 @@ import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.hadoop.hbase.util.FSUtils;
 import org.apache.hadoop.hbase.util.HFileTestUtil;
 import org.junit.AfterClass;
+import org.junit.Assert;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.ClassRule;
@@ -271,6 +275,40 @@ public class TestReplicationSink {
 assertEquals(0, res.size());
   }
 
+  @Test
+  public void testRethrowRetriesExhaustedWithDetailsException() throws 
Exception {
+TableName notExistTable = TableName.valueOf("notExistTable");
+List entries = new ArrayList<>();
+List cells = new ArrayList<>();
+for (int i = 0; i < 10; i++) {
+  entries.add(createEntry(notExistTable, i, KeyValue.Type.Put, cells));
+}
+try {
+  SINK.replicateEntries(entries, 
CellUtil.createCellScanner(cells.iterator()),
+replicationClusterId, baseNamespaceDir, hfileArchiveDir);
+  Assert.fail("Should re-throw TableNotFoundException.");
+} catch (TableNotFoundException e) {
+}
+entries.clear();
+cells.clear();
+for (int i = 0; i < 10; i++) {
+  entries.add(createEntry(TABLE_NAME1, i, KeyValue.Type.Put, cells));
+}
+try (Connection conn = 
ConnectionFactory.c

[09/13] hbase git commit: HBASE-19957 General framework to transit sync replication state

2018-02-12 Thread zhangduo
http://git-wip-us.apache.org/repos/asf/hbase/blob/735a67ed/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 85b2e85..7b8c43b 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
@@ -54,6 +54,7 @@ import 
org.apache.hadoop.hbase.replication.ReplicationException;
 import org.apache.hadoop.hbase.replication.ReplicationListener;
 import org.apache.hadoop.hbase.replication.ReplicationPeer;
 import org.apache.hadoop.hbase.replication.ReplicationPeer.PeerState;
+import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;
 import org.apache.hadoop.hbase.replication.ReplicationPeers;
 import org.apache.hadoop.hbase.replication.ReplicationQueueInfo;
 import org.apache.hadoop.hbase.replication.ReplicationQueueStorage;
@@ -136,6 +137,8 @@ public class ReplicationSourceManager implements 
ReplicationListener {
   // For recovered source, the queue id's format is peer_id-servername-*
   private final ConcurrentMap>> 
walsByIdRecoveredQueues;
 
+  private final SyncReplicationPeerMappingManager 
syncReplicationPeerMappingManager;
+
   private final Configuration conf;
   private final FileSystem fs;
   // The paths to the latest log of each wal group, for new coming peers
@@ -172,9 +175,8 @@ public class ReplicationSourceManager implements 
ReplicationListener {
   public ReplicationSourceManager(ReplicationQueueStorage queueStorage,
   ReplicationPeers replicationPeers, ReplicationTracker 
replicationTracker, Configuration conf,
   Server server, FileSystem fs, Path logDir, Path oldLogDir, UUID 
clusterId,
-  WALFileLengthProvider walFileLengthProvider) throws IOException {
-// CopyOnWriteArrayList is thread-safe.
-// Generally, reading is more than modifying.
+  WALFileLengthProvider walFileLengthProvider,
+  SyncReplicationPeerMappingManager syncReplicationPeerMappingManager) 
throws IOException {
 this.sources = new ConcurrentHashMap<>();
 this.queueStorage = queueStorage;
 this.replicationPeers = replicationPeers;
@@ -187,10 +189,11 @@ public class ReplicationSourceManager implements 
ReplicationListener {
 this.fs = fs;
 this.logDir = logDir;
 this.oldLogDir = oldLogDir;
-this.sleepBeforeFailover = 
conf.getLong("replication.sleep.before.failover", 3); // 30
-   
  // seconds
+// 30 seconds
+this.sleepBeforeFailover = 
conf.getLong("replication.sleep.before.failover", 3);
 this.clusterId = clusterId;
 this.walFileLengthProvider = walFileLengthProvider;
+this.syncReplicationPeerMappingManager = syncReplicationPeerMappingManager;
 this.replicationTracker.registerListener(this);
 // It's preferable to failover 1 RS at a time, but with good zk servers
 // more could be processed at the same time.
@@ -254,8 +257,11 @@ public class ReplicationSourceManager implements 
ReplicationListener {
   }
 
   /**
-   * 1. Add peer to replicationPeers 2. Add the normal source and related 
replication queue 3. Add
-   * HFile Refs
+   * 
+   * Add peer to replicationPeers
+   * Add the normal source and related replication queue
+   * Add HFile Refs
+   * 
* @param peerId the id of replication peer
*/
   public void addPeer(String peerId) throws IOException {
@@ -274,13 +280,16 @@ public class ReplicationSourceManager implements 
ReplicationListener {
   }
 
   /**
-   * 1. Remove peer for replicationPeers 2. Remove all the recovered sources 
for the specified id
-   * and related replication queues 3. Remove the normal source and related 
replication queue 4.
-   * Remove HFile Refs
+   * 
+   * Remove peer for replicationPeers
+   * Remove all the recovered sources for the specified id and related 
replication queues
+   * Remove the normal source and related replication queue
+   * Remove HFile Refs
+   * 
* @param peerId the id of the replication peer
*/
   public void removePeer(String peerId) {
-replicationPeers.removePeer(peerId);
+ReplicationPeer peer = replicationPeers.removePeer(peerId);
 String terminateMessage = "Replication stream was removed by a user";
 List oldSourcesToDelete = new ArrayList<>();
 // synchronized on oldsources to avoid adding recovered source for the 
to-be-removed peer
@@ -311,7 +320,10 @@ public class ReplicationSourceManager implements 
ReplicationListener {
   deleteQueue(peerId);
   this.walsById.remove(peerId);
 }
-
+Replicatio

[05/13] hbase git commit: HBASE-19864 Use protobuf instead of enum.ordinal to store SyncReplicationState

2018-02-12 Thread zhangduo
HBASE-19864 Use protobuf instead of enum.ordinal to store SyncReplicationState

Signed-off-by: zhangduo 


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

Branch: refs/heads/HBASE-19064
Commit: 0a3c9c1b989164e98345d8251a0c133768d8cbab
Parents: 8a3214f
Author: Guanghao Zhang 
Authored: Fri Jan 26 16:50:48 2018 +0800
Committer: zhangduo 
Committed: Mon Feb 12 18:10:36 2018 +0800

--
 .../replication/ReplicationPeerConfigUtil.java  | 22 ++---
 .../hbase/replication/SyncReplicationState.java | 17 +
 .../hbase/shaded/protobuf/RequestConverter.java |  7 +++---
 .../src/main/protobuf/Replication.proto | 13 ++
 .../replication/ZKReplicationPeerStorage.java   | 25 +---
 .../hadoop/hbase/master/MasterRpcServices.java  |  9 ---
 ...ransitPeerSyncReplicationStateProcedure.java |  9 ---
 .../TestReplicationSourceManager.java   |  2 +-
 8 files changed, 67 insertions(+), 37 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/0a3c9c1b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/replication/ReplicationPeerConfigUtil.java
--
diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/replication/ReplicationPeerConfigUtil.java
 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/replication/ReplicationPeerConfigUtil.java
index 86b49ea..5096824 100644
--- 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/replication/ReplicationPeerConfigUtil.java
+++ 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/replication/ReplicationPeerConfigUtil.java
@@ -398,7 +398,7 @@ public final class ReplicationPeerConfigUtil {
 ReplicationProtos.ReplicationState.State.ENABLED == 
desc.getState().getState();
 ReplicationPeerConfig config = convert(desc.getConfig());
 return new ReplicationPeerDescription(desc.getId(), enabled, config,
-
SyncReplicationState.valueOf(desc.getSyncReplicationState().getNumber()));
+  toSyncReplicationState(desc.getSyncReplicationState()));
   }
 
   public static ReplicationProtos.ReplicationPeerDescription
@@ -406,17 +406,33 @@ public final class ReplicationPeerConfigUtil {
 ReplicationProtos.ReplicationPeerDescription.Builder builder =
 ReplicationProtos.ReplicationPeerDescription.newBuilder();
 builder.setId(desc.getPeerId());
+
 ReplicationProtos.ReplicationState.Builder stateBuilder =
 ReplicationProtos.ReplicationState.newBuilder();
 stateBuilder.setState(desc.isEnabled() ? 
ReplicationProtos.ReplicationState.State.ENABLED :
 ReplicationProtos.ReplicationState.State.DISABLED);
 builder.setState(stateBuilder.build());
+
 builder.setConfig(convert(desc.getPeerConfig()));
-builder.setSyncReplicationState(
-  
ReplicationProtos.SyncReplicationState.forNumber(desc.getSyncReplicationState().ordinal()));
+
builder.setSyncReplicationState(toSyncReplicationState(desc.getSyncReplicationState()));
+
 return builder.build();
   }
 
+  public static ReplicationProtos.SyncReplicationState
+  toSyncReplicationState(SyncReplicationState state) {
+ReplicationProtos.SyncReplicationState.Builder syncReplicationStateBuilder 
=
+ReplicationProtos.SyncReplicationState.newBuilder();
+syncReplicationStateBuilder
+
.setState(ReplicationProtos.SyncReplicationState.State.forNumber(state.ordinal()));
+return syncReplicationStateBuilder.build();
+  }
+
+  public static SyncReplicationState
+  toSyncReplicationState(ReplicationProtos.SyncReplicationState state) {
+return SyncReplicationState.valueOf(state.getState().getNumber());
+  }
+
   public static ReplicationPeerConfig appendTableCFsToReplicationPeerConfig(
   Map> tableCfs, ReplicationPeerConfig peerConfig) 
{
 ReplicationPeerConfigBuilder builder = 
ReplicationPeerConfig.newBuilder(peerConfig);

http://git-wip-us.apache.org/repos/asf/hbase/blob/0a3c9c1b/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/SyncReplicationState.java
--
diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/SyncReplicationState.java
 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/SyncReplicationState.java
index bd144e9..a65b144 100644
--- 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/SyncReplicationState.java
+++ 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/SyncReplicationState.java
@@ -17,8 +17,15 @@
  */
 package org.apache.hadoop.hbase.replication;
 
+imp

hbase git commit: HBASE-19554 Dump thread info before failure

2018-02-12 Thread zhangduo
Repository: hbase
Updated Branches:
  refs/heads/branch-2 d793db7c7 -> 43f507dfa


HBASE-19554 Dump thread info before failure


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

Branch: refs/heads/branch-2
Commit: 43f507dfa83a526f1d2840a3e151f38a8875b9bb
Parents: d793db7
Author: zhangduo 
Authored: Mon Feb 12 16:01:33 2018 +0800
Committer: zhangduo 
Committed: Mon Feb 12 16:06:50 2018 +0800

--
 .../org/apache/hadoop/hbase/master/AbstractTestDLS.java | 12 ++--
 1 file changed, 10 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/43f507df/hbase-server/src/test/java/org/apache/hadoop/hbase/master/AbstractTestDLS.java
--
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/AbstractTestDLS.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/AbstractTestDLS.java
index 1d70c97..8527e5d 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/AbstractTestDLS.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/AbstractTestDLS.java
@@ -42,7 +42,6 @@ import java.util.concurrent.Future;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
 import java.util.concurrent.atomic.LongAdder;
-
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FSDataOutputStream;
 import org.apache.hadoop.fs.FileStatus;
@@ -75,6 +74,7 @@ import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.hadoop.hbase.util.FSUtils;
 import org.apache.hadoop.hbase.util.JVMClusterUtil.MasterThread;
 import org.apache.hadoop.hbase.util.JVMClusterUtil.RegionServerThread;
+import org.apache.hadoop.hbase.util.Threads;
 import org.apache.hadoop.hbase.wal.AbstractFSWALProvider;
 import org.apache.hadoop.hbase.wal.WAL;
 import org.apache.hadoop.hbase.wal.WALEdit;
@@ -92,6 +92,7 @@ import org.junit.Test;
 import org.junit.rules.TestName;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+
 import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
 
 /**
@@ -398,7 +399,14 @@ public abstract class AbstractTestDLS {
 }
   });
   TEST_UTIL.waitUntilAllRegionsAssigned(tableName);
-  assertEquals(numRegionsToCreate * numRowsPerRegion, 
TEST_UTIL.countRows(table));
+  int rows;
+  try {
+rows = TEST_UTIL.countRows(table);
+  } catch (Exception e) {
+Threads.printThreadInfo(System.out, "Thread dump before fail");
+throw e;
+  }
+  assertEquals(numRegionsToCreate * numRowsPerRegion, rows);
 }
   }
 



hbase git commit: HBASE-19554 Dump thread info before failure

2018-02-12 Thread zhangduo
Repository: hbase
Updated Branches:
  refs/heads/master 629eaf8b7 -> 8ff783f76


HBASE-19554 Dump thread info before failure


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

Branch: refs/heads/master
Commit: 8ff783f76d370199b81a24c48feaad1aa980285e
Parents: 629eaf8
Author: zhangduo 
Authored: Mon Feb 12 16:01:33 2018 +0800
Committer: zhangduo 
Committed: Mon Feb 12 16:03:52 2018 +0800

--
 .../org/apache/hadoop/hbase/master/AbstractTestDLS.java | 12 ++--
 1 file changed, 10 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/8ff783f7/hbase-server/src/test/java/org/apache/hadoop/hbase/master/AbstractTestDLS.java
--
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/AbstractTestDLS.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/AbstractTestDLS.java
index 73718b9..1f9fc5d 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/AbstractTestDLS.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/AbstractTestDLS.java
@@ -42,7 +42,6 @@ import java.util.concurrent.Future;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
 import java.util.concurrent.atomic.LongAdder;
-
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FSDataOutputStream;
 import org.apache.hadoop.fs.FileStatus;
@@ -75,6 +74,7 @@ import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.hadoop.hbase.util.FSUtils;
 import org.apache.hadoop.hbase.util.JVMClusterUtil.MasterThread;
 import org.apache.hadoop.hbase.util.JVMClusterUtil.RegionServerThread;
+import org.apache.hadoop.hbase.util.Threads;
 import org.apache.hadoop.hbase.wal.AbstractFSWALProvider;
 import org.apache.hadoop.hbase.wal.WAL;
 import org.apache.hadoop.hbase.wal.WALEdit;
@@ -92,6 +92,7 @@ import org.junit.Test;
 import org.junit.rules.TestName;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+
 import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
 
 /**
@@ -398,7 +399,14 @@ public abstract class AbstractTestDLS {
 }
   });
   TEST_UTIL.waitUntilAllRegionsAssigned(tableName);
-  assertEquals(numRegionsToCreate * numRowsPerRegion, 
TEST_UTIL.countRows(table));
+  int rows;
+  try {
+rows = TEST_UTIL.countRows(table);
+  } catch (Exception e) {
+Threads.printThreadInfo(System.out, "Thread dump before fail");
+throw e;
+  }
+  assertEquals(numRegionsToCreate * numRowsPerRegion, rows);
 }
   }