You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by li...@apache.org on 2014/04/25 20:18:39 UTC
svn commit: r1590091 - in /hbase/branches/0.89-fb/src:
main/java/org/apache/hadoop/hbase/client/
main/java/org/apache/hadoop/hbase/master/ test/java/org/apache/hadoop/hbase/
test/java/org/apache/hadoop/hbase/master/
test/java/org/apache/hadoop/hbase/re...
Author: liyin
Date: Fri Apr 25 18:18:39 2014
New Revision: 1590091
URL: http://svn.apache.org/r1590091
Log:
[master] make TestLogSplitOnMasterFailover more stable
Author: daviddeng
Summary:
useAssignmentPlan
Increase the timeout
Test Plan: `TestLogSplitOnMasterFailover`
Reviewers: manukranthk, liyintang, gauravm
Reviewed By: manukranthk
CC: hbase-eng@
Differential Revision: https://phabricator.fb.com/D1292513
Task ID: 3376780
Modified:
hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/BaseScanner.java
hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java
hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/master/MultiMasterTest.java
hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/master/TestLogSplitOnMasterFailover.java
hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/regionserver/TestGetRegionLocation.java
Modified: hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java?rev=1590091&r1=1590090&r2=1590091&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java (original)
+++ hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java Fri Apr 25 18:18:39 2014
@@ -301,25 +301,25 @@ public class HBaseAdmin {
}
};
MetaScanner.metaScan(conf, visitor, new StringBytes(desc.getName()));
- if (actualRegCount.get() != numRegs) {
- if (tries == numRetries - 1) {
- throw new RegionOfflineException("Only " + actualRegCount.get() +
- " of " + numRegs + " regions are online; retries exhausted.");
- }
- try { // Sleep
- Thread.sleep(getPauseTime(tries));
- } catch (InterruptedException e) {
- throw new InterruptedIOException("Interrupted when opening" +
- " regions; " + actualRegCount.get() + " of " + numRegs +
- " regions processed so far");
- }
- if (actualRegCount.get() > prevRegCount) { // Making progress
- prevRegCount = actualRegCount.get();
- tries = -1;
- }
- } else {
+ if (actualRegCount.get() == numRegs) {
return;
}
+
+ if (tries == numRetries - 1) {
+ throw new RegionOfflineException("Only " + actualRegCount.get()
+ + " of " + numRegs + " regions are online; retries exhausted.");
+ }
+ try { // Sleep
+ Thread.sleep(getPauseTime(tries));
+ } catch (InterruptedException e) {
+ throw new InterruptedIOException("Interrupted when opening"
+ + " regions; " + actualRegCount.get() + " of " + numRegs
+ + " regions processed so far");
+ }
+ if (actualRegCount.get() > prevRegCount) { // Making progress
+ prevRegCount = actualRegCount.get();
+ tries = -1;
+ }
}
}
Modified: hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/BaseScanner.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/BaseScanner.java?rev=1590091&r1=1590090&r2=1590091&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/BaseScanner.java (original)
+++ hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/BaseScanner.java Fri Apr 25 18:18:39 2014
@@ -55,7 +55,7 @@ import org.apache.hadoop.ipc.RemoteExcep
/**
- * Base HRegion scanner class. Holds utilty common to <code>ROOT</code> and
+ * Base HRegion scanner class. Holds utility common to <code>ROOT</code> and
* <code>META</code> HRegion scanners.
*
* <p>How do we know if all regions are assigned? After the initial scan of
Modified: hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/HMaster.java?rev=1590091&r1=1590090&r2=1590091&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/HMaster.java (original)
+++ hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/HMaster.java Fri Apr 25 18:18:39 2014
@@ -33,12 +33,10 @@ import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
-import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.NavigableMap;
-import java.util.Random;
import java.util.Set;
import java.util.SortedMap;
import java.util.concurrent.ConcurrentSkipListMap;
@@ -1141,9 +1139,7 @@ public class HMaster extends HasThread i
public void splitDeadServerLog(final String serverName) throws IOException {
// Maintain the number of dead server split log requests for testing.
numDeadServerLogSplitRequests.incrementAndGet();
- List<String> serverNames = new ArrayList<String>();
- serverNames.add(serverName);
- splitLog(serverNames);
+ splitLog(Collections.singletonList(serverName));
}
public void splitLog(final List<String> serverNames) throws IOException {
@@ -1551,9 +1547,9 @@ public class HMaster extends HasThread i
throw new TableExistsException(tableName);
}
if (assignmentPlan == null) {
- LOG.info("Generated the assignment plan for new table " + tableName);
- } else {
LOG.info("NO assignment plan for new table " + tableName);
+ } else {
+ LOG.info("Generated the assignment plan for new table " + tableName);
}
for(HRegionInfo newRegion : newRegions) {
Modified: hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java?rev=1590091&r1=1590090&r2=1590091&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java (original)
+++ hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java Fri Apr 25 18:18:39 2014
@@ -1965,4 +1965,12 @@ REGION_LOOP:
return count;
}
}
+
+ /**
+ * Sets the configuration to use AssignmentLoadBalancer.
+ */
+ public void useAssignmentLoadBalancer() {
+ this.conf.set(HConstants.LOAD_BALANCER_IMPL,
+ "org.apache.hadoop.hbase.master.RegionManager$AssignmentLoadBalancer");
+ }
}
Modified: hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/master/MultiMasterTest.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/master/MultiMasterTest.java?rev=1590091&r1=1590090&r2=1590091&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/master/MultiMasterTest.java (original)
+++ hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/master/MultiMasterTest.java Fri Apr 25 18:18:39 2014
@@ -19,7 +19,10 @@
*/
package org.apache.hadoop.hbase.master;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
import java.io.IOException;
import java.util.List;
@@ -35,14 +38,14 @@ import org.apache.hadoop.hbase.LocalHBas
import org.apache.hadoop.hbase.MiniHBaseCluster;
import org.apache.hadoop.hbase.regionserver.HRegion;
import org.apache.hadoop.hbase.regionserver.HRegionServer;
-import org.apache.hadoop.hbase.util.Threads;
import org.apache.hadoop.hbase.util.JVMClusterUtil.RegionServerThread;
+import org.apache.hadoop.hbase.util.Threads;
import org.apache.hadoop.hbase.zookeeper.ZooKeeperWrapper;
import org.junit.After;
/**
* A base class for unit tests that require multiple masters, e.g. master
- * failover tests.
+ * failover tests.
*/
public class MultiMasterTest {
private static final Log LOG = LogFactory.getLog(MultiMasterTest.class);
@@ -84,7 +87,7 @@ public class MultiMasterTest {
activeIndex = i;
}
}
- assertEquals("Expected to find exactly one active master " + numActive,
+ assertEquals("Expected to find exactly one active master",
1, numActive);
assertTrue(activeIndex != -1);
return activeIndex;
Modified: hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/master/TestLogSplitOnMasterFailover.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/master/TestLogSplitOnMasterFailover.java?rev=1590091&r1=1590090&r2=1590091&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/master/TestLogSplitOnMasterFailover.java (original)
+++ hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/master/TestLogSplitOnMasterFailover.java Fri Apr 25 18:18:39 2014
@@ -239,7 +239,7 @@ public class TestLogSplitOnMasterFailove
}
}
- @Test(timeout=180000)
+ @Test(timeout = 300000)
public void testWithRegularLogSplitting() throws Exception {
ZooKeeperWrapper.setNamespaceForTesting();
conf.setBoolean(HConstants.DISTRIBUTED_LOG_SPLITTING_KEY, false);
@@ -249,7 +249,7 @@ public class TestLogSplitOnMasterFailove
// Marked as unstable and recored in 3376780
@TestTag({ "unstable" })
- @Test(timeout=180000)
+ @Test(timeout = 300000)
public void testWithDistributedLogSplitting() throws Exception {
ZooKeeperWrapper.setNamespaceForTesting();
conf.setBoolean(HConstants.DISTRIBUTED_LOG_SPLITTING_KEY, true);
@@ -258,7 +258,7 @@ public class TestLogSplitOnMasterFailove
// Marked as unstable and recored in 3376780
@TestTag({ "unstable" })
- @Test(timeout=280000)
+ @Test(timeout = 300000)
public void testWithDistributedLogSplittingAndErrors() throws Exception {
// add a split log worker to handle InjectionEvent.SPLITLOGWORKER_SPLIT_LOG_START.
ZooKeeperWrapper.setNamespaceForTesting();
@@ -286,6 +286,7 @@ public class TestLogSplitOnMasterFailove
private void runTest() throws Exception {
+ testUtil.useAssignmentLoadBalancer();
startMiniCluster(NUM_MASTERS, NUM_RS);
Thread.currentThread().setName(getClass().getSimpleName());
ensureMastersAreUp(NUM_MASTERS);
Modified: hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/regionserver/TestGetRegionLocation.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/regionserver/TestGetRegionLocation.java?rev=1590091&r1=1590090&r2=1590091&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/regionserver/TestGetRegionLocation.java (original)
+++ hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/regionserver/TestGetRegionLocation.java Fri Apr 25 18:18:39 2014
@@ -32,7 +32,6 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseTestingUtility;
-import org.apache.hadoop.hbase.HConstants;
import org.apache.hadoop.hbase.HRegionInfo;
import org.apache.hadoop.hbase.HRegionLocation;
import org.apache.hadoop.hbase.HServerInfo;
@@ -58,8 +57,7 @@ public class TestGetRegionLocation {
@Before
public void setUp() throws IOException, InterruptedException {
// Use assignment plan so that regions are not moved unexpectedly.
- TEST_UTIL.getConfiguration().set(HConstants.LOAD_BALANCER_IMPL,
- "org.apache.hadoop.hbase.master.RegionManager$AssignmentLoadBalancer");
+ TEST_UTIL.useAssignmentLoadBalancer();
TEST_UTIL.startMiniCluster(NUM_SLAVES);
TEST_UTIL.createTable(TABLE, FAMILIES, 1, START_KEY, END_KEY, NUM_REGIONS);
}