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/03/14 19:09:57 UTC
svn commit: r1577643 - in
/hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase: ./ client/
mapreduce/ master/ regionserver/metrics/ regionserver/wal/
replication/regionserver/ util/
Author: liyin
Date: Fri Mar 14 18:09:57 2014
New Revision: 1577643
URL: http://svn.apache.org/r1577643
Log:
[private] Tag some unstable cases
Author: daviddeng
Summary: According to http://ci-builds.fb.com/job/hadoop_cheetah_hbase_trunk/1444/
Test Plan: Jekkins
Reviewers: gauravm, manukranthk, liyintang, fan, aaiyer
Reviewed By: liyintang
CC: hbase-eng@
Differential Revision: https://phabricator.fb.com/D1220890
Task ID: 3789093
Modified:
hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/UnstableTestSuite.java
hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/client/TestScannerTimeout.java
hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/client/TestServerConfigFromClient.java
hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/mapreduce/TestHFileOutputFormat.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/master/TestRSLivenessOnMasterFailover.java
hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/master/TestRegionPlacement.java
hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/master/TestRegionStateOnMasterFailure.java
hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/regionserver/metrics/TestThriftMetrics.java
hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRolling.java
hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALReplay.java
hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSink.java
hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/util/TestProcessBasedCluster.java
Modified: hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/UnstableTestSuite.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/UnstableTestSuite.java?rev=1577643&r1=1577642&r2=1577643&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/UnstableTestSuite.java (original)
+++ hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/UnstableTestSuite.java Fri Mar 14 18:09:57 2014
@@ -19,12 +19,29 @@
*/
package org.apache.hadoop.hbase;
+import org.apache.hadoop.hbase.client.TestScannerTimeout;
+import org.apache.hadoop.hbase.client.TestServerConfigFromClient;
+import org.apache.hadoop.hbase.mapreduce.TestHFileOutputFormat;
+import org.apache.hadoop.hbase.master.TestLogSplitOnMasterFailover;
+import org.apache.hadoop.hbase.master.TestRSLivenessOnMasterFailover;
+import org.apache.hadoop.hbase.master.TestRegionPlacement;
+import org.apache.hadoop.hbase.master.TestRegionStateOnMasterFailure;
import org.apache.hadoop.hbase.regionserver.TestHRegionCloseRetry;
+import org.apache.hadoop.hbase.regionserver.metrics.TestThriftMetrics;
+import org.apache.hadoop.hbase.regionserver.wal.TestLogRolling;
+import org.apache.hadoop.hbase.regionserver.wal.TestWALReplay;
+import org.apache.hadoop.hbase.replication.regionserver.TestReplicationSink;
+import org.apache.hadoop.hbase.util.TestProcessBasedCluster;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
@RunWith(Suite.class)
-@SuiteClasses({ TestHRegionCloseRetry.class })
+@SuiteClasses({ TestHRegionCloseRetry.class, TestReplicationSink.class,
+ TestLogRolling.class, TestHFileOutputFormat.class,
+ TestProcessBasedCluster.class, TestRegionStateOnMasterFailure.class,
+ TestScannerTimeout.class, TestWALReplay.class, TestThriftMetrics.class,
+ TestRegionPlacement.class, TestServerConfigFromClient.class,
+ TestRSLivenessOnMasterFailover.class, TestLogSplitOnMasterFailover.class })
public class UnstableTestSuite {
}
Modified: hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/client/TestScannerTimeout.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/client/TestScannerTimeout.java?rev=1577643&r1=1577642&r2=1577643&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/client/TestScannerTimeout.java (original)
+++ hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/client/TestScannerTimeout.java Fri Mar 14 18:09:57 2014
@@ -28,14 +28,18 @@ import org.apache.hadoop.conf.Configurat
import org.apache.hadoop.hbase.HBaseTestingUtility;
import org.apache.hadoop.hbase.HConstants;
import org.apache.hadoop.hbase.util.Bytes;
+import org.apache.hadoop.hbase.util.TagRunner;
+import org.apache.hadoop.hbase.util.TestTag;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
+import org.junit.runner.RunWith;
/**
* Test various scanner timeout issues.
*/
+@RunWith(TagRunner.class)
public class TestScannerTimeout {
private final static HBaseTestingUtility
@@ -84,6 +88,8 @@ public class TestScannerTimeout {
* Test that we do get a ScannerTimeoutException
* @throws Exception
*/
+ // Marked as unstable and recored in #3921333
+ @TestTag({ "unstable" })
@Test
public void test2481() throws Exception {
Scan scan = new Scan();
Modified: hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/client/TestServerConfigFromClient.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/client/TestServerConfigFromClient.java?rev=1577643&r1=1577642&r2=1577643&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/client/TestServerConfigFromClient.java (original)
+++ hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/client/TestServerConfigFromClient.java Fri Mar 14 18:09:57 2014
@@ -20,18 +20,23 @@
package org.apache.hadoop.hbase.client;
import static org.junit.Assert.assertEquals;
+
import java.io.IOException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hbase.HBaseTestingUtility;
import org.apache.hadoop.hbase.util.Bytes;
+import org.apache.hadoop.hbase.util.TagRunner;
+import org.apache.hadoop.hbase.util.TestTag;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
+import org.junit.runner.RunWith;
+@RunWith(TagRunner.class)
public class TestServerConfigFromClient {
final Log LOG = LogFactory.getLog(getClass());
private final static HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();
@@ -71,6 +76,8 @@ public class TestServerConfigFromClient
// Nothing to do.
}
+ // Marked as unstable and recorded in #3922005
+ @TestTag({ "unstable" })
@Test
public void testReadConfig() throws IOException {
final byte [] CONTENTS_FAMILY = Bytes.toBytes("contents");
Modified: hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/mapreduce/TestHFileOutputFormat.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/mapreduce/TestHFileOutputFormat.java?rev=1577643&r1=1577642&r2=1577643&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/mapreduce/TestHFileOutputFormat.java (original)
+++ hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/mapreduce/TestHFileOutputFormat.java Fri Mar 14 18:09:57 2014
@@ -1,4 +1,4 @@
-/**
+/**
* Copyright 2009 The Apache Software Foundation
*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -35,7 +35,6 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.Random;
-import com.google.common.collect.Lists;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.conf.Configuration;
@@ -73,6 +72,8 @@ import org.apache.hadoop.hbase.regionser
import org.apache.hadoop.hbase.regionserver.StoreFile.BloomType;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.hbase.util.Pair;
+import org.apache.hadoop.hbase.util.TagRunner;
+import org.apache.hadoop.hbase.util.TestTag;
import org.apache.hadoop.hdfs.protocol.DatanodeInfo;
import org.apache.hadoop.hdfs.protocol.LocatedBlock;
import org.apache.hadoop.hdfs.protocol.LocatedBlocks;
@@ -86,8 +87,11 @@ import org.apache.hadoop.mapreduce.TaskA
import org.apache.hadoop.mapreduce.lib.output.FileOutputCommitter;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.junit.Test;
+import org.junit.runner.RunWith;
import org.mockito.Mockito;
+import com.google.common.collect.Lists;
+
/**
* Simple test for {@link KeyValueSortReducer} and {@link HFileOutputFormat}.
* Sets up and runs a mapreduce job that writes hfile output.
@@ -95,6 +99,7 @@ import org.mockito.Mockito;
* emits keys and values like those of {@link PerformanceEvaluation}. Makes
* as many splits as "mapred.map.tasks" maps.
*/
+@RunWith(TagRunner.class)
public class TestHFileOutputFormat {
private final static int ROWSPERSPLIT = 1024;
@@ -105,9 +110,9 @@ public class TestHFileOutputFormat {
private static final byte[] TABLE_NAME = Bytes.toBytes("TestTable");
private static final String oldValue = "valAAAAA";
private static final String newValue = "valBBBBB";
-
+
private HBaseTestingUtility util = new HBaseTestingUtility();
-
+
private static Log LOG = LogFactory.getLog(TestHFileOutputFormat.class);
/**
@@ -116,7 +121,7 @@ public class TestHFileOutputFormat {
static class RandomKVGeneratingMapper
extends Mapper<NullWritable, NullWritable,
ImmutableBytesWritable, KeyValue> {
-
+
private int keyLength;
private static final int KEYLEN_DEFAULT=10;
private static final String KEYLEN_CONF="randomkv.key.length";
@@ -124,12 +129,12 @@ public class TestHFileOutputFormat {
private int valLength;
private static final int VALLEN_DEFAULT=10;
private static final String VALLEN_CONF="randomkv.val.length";
-
+
@Override
protected void setup(Context context) throws IOException,
InterruptedException {
super.setup(context);
-
+
Configuration conf = context.getConfiguration();
keyLength = conf.getInt(KEYLEN_CONF, KEYLEN_DEFAULT);
valLength = conf.getInt(VALLEN_CONF, VALLEN_DEFAULT);
@@ -144,7 +149,7 @@ public class TestHFileOutputFormat {
{
byte keyBytes[] = new byte[keyLength];
byte valBytes[] = new byte[valLength];
-
+
int taskId = context.getTaskAttemptID().getTaskID().getId();
assert taskId < Byte.MAX_VALUE : "Unit tests dont support > 127 tasks!";
@@ -178,9 +183,9 @@ public class TestHFileOutputFormat {
Mapper<NullWritable, NullWritable, ImmutableBytesWritable, RowMutation> {
@Override
protected void map(
- NullWritable n1, NullWritable n2,
- Mapper<NullWritable, NullWritable,
- ImmutableBytesWritable, RowMutation>.Context context)
+ NullWritable n1, NullWritable n2,
+ Mapper<NullWritable, NullWritable,
+ ImmutableBytesWritable, RowMutation>.Context context)
throws IOException ,InterruptedException
{
byte[] row = Bytes.toBytes("row1");
@@ -296,33 +301,33 @@ public class TestHFileOutputFormat {
* @throws Exception on job, sorting, IO or fs errors
*/
@Test
- public void testRowSortReducer()
+ public void testRowSortReducer()
throws Exception {
Configuration conf = new Configuration(this.util.getConfiguration());
conf.setInt("io.sort.mb", 20);
conf.setInt("mapred.map.tasks", 1);
Path dir = util.getTestDir("testRowSortReducer");
-
+
try {
Job job = new Job(conf);
-
+
job.setInputFormatClass(NMapInputFormat.class);
job.setOutputFormatClass(HFileOutputFormat.class);
-
+
job.setNumReduceTasks(1);
job.setMapperClass(RowSorterMapper.class); // local
job.setReducerClass(RowMutationSortReducer.class);
-
+
job.setOutputKeyClass(ImmutableBytesWritable.class);
job.setOutputValueClass(KeyValue.class);
-
+
job.setMapOutputKeyClass(ImmutableBytesWritable.class);
- job.setMapOutputValueClass(RowMutation.class);
+ job.setMapOutputValueClass(RowMutation.class);
FileOutputFormat.setOutputPath(job, dir);
-
+
assertTrue(job.waitForCompletion(false));
FileSystem fs = dir.getFileSystem(conf);
@@ -340,12 +345,12 @@ public class TestHFileOutputFormat {
scanner.seekTo();
int index = 0;
-
+
// check things for info-A
if (Bytes.toString(TestHFileOutputFormat.FAMILIES[0]).equals(cf)) {
do {
++index;
-
+
KeyValue kv = scanner.getKeyValue();
long ts = kv.getTimestamp();
@@ -437,7 +442,7 @@ public class TestHFileOutputFormat {
dir.getFileSystem(conf).delete(dir, true);
}
}
-
+
/**
* Test that {@link HFileOutputFormat} RecordWriter amends timestamps if
* passed a keyvalue whose timestamp is {@link HConstants#LATEST_TIMESTAMP}.
@@ -491,22 +496,22 @@ public class TestHFileOutputFormat {
Configuration conf = util.getConfiguration();
Path testDir = util.getTestDir("testWritingPEData");
FileSystem fs = testDir.getFileSystem(conf);
-
+
// Set down this value or we OOME in eclipse.
conf.setInt("io.sort.mb", 20);
// Write a few files.
conf.setLong("hbase.hregion.max.filesize", 64 * 1024);
-
+
Job job = new Job(conf, "testWritingPEData");
setupRandomGeneratorMapper(job);
// This partitioner doesn't work well for number keys but using it anyways
// just to demonstrate how to configure it.
byte[] startKey = new byte[RandomKVGeneratingMapper.KEYLEN_DEFAULT];
byte[] endKey = new byte[RandomKVGeneratingMapper.KEYLEN_DEFAULT];
-
+
Arrays.fill(startKey, (byte)0);
Arrays.fill(endKey, (byte)0xff);
-
+
job.setPartitionerClass(SimpleTotalOrderPartitioner.class);
// Set start and end rows for partitioner.
SimpleTotalOrderPartitioner.setStartKey(job.getConfiguration(), startKey);
@@ -514,13 +519,13 @@ public class TestHFileOutputFormat {
job.setReducerClass(KeyValueSortReducer.class);
job.setOutputFormatClass(HFileOutputFormat.class);
job.setNumReduceTasks(4);
-
+
FileOutputFormat.setOutputPath(job, testDir);
assertTrue(job.waitForCompletion(false));
FileStatus [] files = fs.listStatus(testDir);
assertTrue(files.length > 0);
}
-
+
@Test
public void testJobConfiguration() throws Exception {
Job job = new Job();
@@ -540,26 +545,26 @@ public class TestHFileOutputFormat {
}
return ret;
}
-
+
@Test
public void testMRIncrementalLoad() throws Exception {
LOG.info("\nStarting test testMRIncrementalLoad\n");
doIncrementalLoadTest(false);
}
-
+
@Test
public void testMRIncrementalLoadWithSplit() throws Exception {
LOG.info("\nStarting test testMRIncrementalLoadWithSplit\n");
doIncrementalLoadTest(true);
}
-
+
private void doIncrementalLoadTest(
boolean shouldChangeRegions) throws Exception {
util = new HBaseTestingUtility();
Configuration conf = util.getConfiguration();
Path testDir = util.getTestDir("testLocalMRIncrementalLoad");
byte[][] startKeys = generateRandomStartKeys(5);
-
+
try {
util.startMiniCluster();
HBaseAdmin admin = new HBaseAdmin(conf);
@@ -606,10 +611,10 @@ public class TestHFileOutputFormat {
LOG.info("Waiting for new region assignment to happen");
}
}
-
+
// Perform the actual load
new LoadIncrementalHFiles(conf).doBulkLoad(testDir, table);
-
+
// Ensure data shows up
int expectedRows = conf.getInt("mapred.map.tasks", 1) * ROWSPERSPLIT;
assertEquals("LoadIncrementalHFiles should put expected data in table",
@@ -626,16 +631,16 @@ public class TestHFileOutputFormat {
}
results.close();
String tableDigestBefore = util.checksumRows(table);
-
+
// Cause regions to reopen
admin.disableTable(TABLE_NAME);
while (table.getRegionsInfo().size() != 0) {
Thread.sleep(1000);
- LOG.info("Waiting for table to disable");
+ LOG.info("Waiting for table to disable");
}
admin.enableTable(TABLE_NAME);
util.waitTableAvailable(TABLE_NAME, 30000);
-
+
assertEquals("Data should remain after reopening of regions",
tableDigestBefore, util.checksumRows(table));
} finally {
@@ -643,7 +648,7 @@ public class TestHFileOutputFormat {
util.shutdownMiniCluster();
}
}
-
+
private void runIncrementalPELoad(
Configuration conf, HTable table, Path outDir)
throws Exception {
@@ -651,10 +656,10 @@ public class TestHFileOutputFormat {
setupRandomGeneratorMapper(job);
HFileOutputFormat.configureIncrementalLoad(job, table);
FileOutputFormat.setOutputPath(job, outDir);
-
+
assertEquals(table.getRegionsInfo().size(),
job.getNumReduceTasks());
-
+
assertTrue(job.waitForCompletion(true));
}
@@ -711,7 +716,7 @@ public class TestHFileOutputFormat {
* Test for
* {@link HFileOutputFormat#createFamilyCompressionMap(Configuration)}. Tests
* that the compression map is correctly deserialized from configuration
- *
+ *
* @throws IOException
*/
@Test
@@ -777,7 +782,7 @@ public class TestHFileOutputFormat {
}
return familyToCompression;
}
-
+
/**
* Test that {@link HFileOutputFormat} RecordWriter uses compression settings
* from the column family descriptor
@@ -827,7 +832,7 @@ public class TestHFileOutputFormat {
// Make sure that a directory was created for every CF
FileSystem fileSystem = dir.getFileSystem(conf);
-
+
// commit so that the filesystem has one directory per column family
hof.getOutputCommitter(context).commitTask(context);
for (byte[] family : FAMILIES) {
@@ -983,7 +988,7 @@ public class TestHFileOutputFormat {
}
}
- private void setupColumnFamiliesEncodingType(HTable table,
+ private void setupColumnFamiliesEncodingType(HTable table,
Map<String, DataBlockEncoding> familyToEncoding) throws IOException {
HTableDescriptor mockTableDesc = new HTableDescriptor();
for (Entry<String, DataBlockEncoding> entry : familyToEncoding.entrySet()) {
@@ -1003,7 +1008,7 @@ public class TestHFileOutputFormat {
}
Mockito.doReturn(mockTableDesc).when(table).getTableDescriptor();
}
-
+
/**
* Test that {@link HFileOutputFormat} RecordWriter uses encoding settings
* from the column family descriptor
@@ -1065,13 +1070,13 @@ public class TestHFileOutputFormat {
// verify that the Encoding type on this file matches the
// configured Encoding type.
Path dataFilePath = fileSystem.listStatus(f.getPath())[0].getPath();
-
+
StoreFile.Reader reader = new StoreFile.Reader(fileSystem,
dataFilePath, new CacheConfig(conf), null);
Map<byte[], byte[]> metadataMap = reader.loadFileInfo();
assertTrue("timeRange is not set", metadataMap.get(StoreFile.TIMERANGE_KEY) != null);
- assertEquals("Incorrect Encoding Type used for column family "
+ assertEquals("Incorrect Encoding Type used for column family "
+ familyStr + "(reader: " + reader + ")",
configuredEncoding.get(familyStr),
reader.getHFileReader().getEncodingOnDisk());
@@ -1089,6 +1094,8 @@ public class TestHFileOutputFormat {
}
}
+ // Marked as unstable, recorded in #3297517
+ @TestTag({ "unstable" })
@Test
public void testFavoredNodes() throws Exception {
Random rand = new Random();
@@ -1100,7 +1107,7 @@ public class TestHFileOutputFormat {
}
private static final int FAVORED_NODES_NUM = 3;
private static final int REGION_SERVERS = 10;
- /**
+ /**
* Testing FavoredNodes support for HFileOutputFormat
*/
public void testFavoredNodesPerChar(byte c) throws Exception{
@@ -1239,13 +1246,13 @@ public class TestHFileOutputFormat {
}
}
}
-
+
public static void main(String args[]) throws Exception {
new TestHFileOutputFormat().manualTest(args);
}
-
+
public void manualTest(String args[]) throws Exception {
- Configuration conf = HBaseConfiguration.create();
+ Configuration conf = HBaseConfiguration.create();
util = new HBaseTestingUtility(conf);
if ("newtable".equals(args[0])) {
byte[] tname = args[1].getBytes();
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=1577643&r1=1577642&r2=1577643&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 Mar 14 18:09:57 2014
@@ -18,8 +18,8 @@ package org.apache.hadoop.hbase.master;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
import java.io.IOException;
import java.util.ArrayList;
@@ -49,10 +49,13 @@ import org.apache.hadoop.hbase.regionser
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.hbase.util.FSUtils;
import org.apache.hadoop.hbase.util.InjectionEvent;
+import org.apache.hadoop.hbase.util.InjectionHandler;
+import org.apache.hadoop.hbase.util.TagRunner;
+import org.apache.hadoop.hbase.util.TestTag;
import org.apache.hadoop.hbase.util.Threads;
import org.apache.hadoop.hbase.zookeeper.ZooKeeperWrapper;
-import org.apache.hadoop.hbase.util.InjectionHandler;
import org.junit.Test;
+import org.junit.runner.RunWith;
/**
* Tests that the master splits the logs of dead regionservers on startup and
@@ -60,6 +63,7 @@ import org.junit.Test;
* regionserver to create a need to split logs, and quickly killing a master to
* cause master failover.
*/
+@RunWith(TagRunner.class)
public class TestLogSplitOnMasterFailover extends MultiMasterTest {
private static final Log LOG =
@@ -250,6 +254,8 @@ public class TestLogSplitOnMasterFailove
runTest();
}
+ // Marked as unstable and recored in 3376780
+ @TestTag({ "unstable" })
@Test(timeout=280000)
public void testWithDistributedLogSplittingAndErrors() throws Exception {
// add a split log worker to handle InjectionEvent.SPLITLOGWORKER_SPLIT_LOG_START.
@@ -258,12 +264,12 @@ public class TestLogSplitOnMasterFailove
InjectionHandler.set(new SplitLogKillInjectionHandler());
runTest();
}
-
+
static class SplitLogKillInjectionHandler extends InjectionHandler {
static int count = 0;
-
+
@Override
- // kill split log workers the first few times.
+ // kill split log workers the first few times.
protected void _processEventIO(InjectionEvent event, Object... args) throws IOException{
if (event == InjectionEvent.SPLITLOGWORKER_SPLIT_LOG_START) {
count++;
@@ -275,8 +281,8 @@ public class TestLogSplitOnMasterFailove
}
}
}
-
-
+
+
private void runTest() throws Exception {
startMiniCluster(NUM_MASTERS, NUM_RS);
Thread.currentThread().setName(getClass().getSimpleName());
@@ -330,7 +336,7 @@ public class TestLogSplitOnMasterFailove
masters = miniCluster().getMasters();
assertEquals(1, masters.size());
-
+
// Start a few new regionservers.
final int EXTRA_RS = 2;
for (int i = NUM_RS; i < NUM_RS + EXTRA_RS; ++i) {
@@ -338,7 +344,7 @@ public class TestLogSplitOnMasterFailove
otherRsNames.add(
miniCluster().getRegionServer(i).getServerInfo().getServerName());
}
-
+
// wait for an active master to show up and be ready
assertTrue(miniCluster().waitForActiveAndReadyMaster());
Modified: hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/master/TestRSLivenessOnMasterFailover.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/master/TestRSLivenessOnMasterFailover.java?rev=1577643&r1=1577642&r2=1577643&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/master/TestRSLivenessOnMasterFailover.java (original)
+++ hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/master/TestRSLivenessOnMasterFailover.java Fri Mar 14 18:09:57 2014
@@ -22,17 +22,23 @@ import java.io.IOException;
import org.apache.hadoop.hbase.HConstants;
import org.apache.hadoop.hbase.HServerAddress;
+import org.apache.hadoop.hbase.util.TagRunner;
+import org.apache.hadoop.hbase.util.TestTag;
import org.apache.hadoop.hbase.util.Threads;
import org.apache.hadoop.hbase.zookeeper.ZooKeeperWrapper;
import org.apache.zookeeper.KeeperException;
import org.junit.Test;
+import org.junit.runner.RunWith;
/**
* Tests that the regionserver correctly picks up the new master location and
* does not get stuck in a retry loop trying to contact the old master.
*/
+@RunWith(TagRunner.class)
public class TestRSLivenessOnMasterFailover extends MultiMasterTest {
+ // Marked as unstable and recorded in 3921469
+ @TestTag({ "unstable" })
@Test(timeout=60000)
public void testAgainstRSDeadlock() throws IOException,
InterruptedException, KeeperException {
Modified: hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/master/TestRegionPlacement.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/master/TestRegionPlacement.java?rev=1577643&r1=1577642&r2=1577643&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/master/TestRegionPlacement.java (original)
+++ hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/master/TestRegionPlacement.java Fri Mar 14 18:09:57 2014
@@ -57,13 +57,17 @@ import org.apache.hadoop.hbase.master.Re
import org.apache.hadoop.hbase.regionserver.HRegion;
import org.apache.hadoop.hbase.regionserver.HRegionServer;
import org.apache.hadoop.hbase.util.Bytes;
+import org.apache.hadoop.hbase.util.TagRunner;
+import org.apache.hadoop.hbase.util.TestTag;
import org.apache.hadoop.hbase.util.Writables;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
+import org.junit.runner.RunWith;
import com.google.gson.Gson;
+@RunWith(TagRunner.class)
public class TestRegionPlacement {
final static Log LOG = LogFactory.getLog(TestRegionPlacement.class);
private final static HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();
@@ -84,7 +88,7 @@ public class TestRegionPlacement {
// Enable the favored nodes based load balancer
conf.set("hbase.loadbalancer.impl",
"org.apache.hadoop.hbase.master.RegionManager$AssignmentLoadBalancer");
-
+
conf.setInt("hbase.master.meta.thread.rescanfrequency", 5000);
conf.setInt("hbase.regionserver.msginterval", 1000);
conf.setLong("hbase.regionserver.transientAssignment.regionHoldPeriod", 2000);
@@ -114,6 +118,8 @@ public class TestRegionPlacement {
*
* @throws Exception
*/
+ // Marked as unstable and recorded in #2747703
+ @TestTag({ "unstable" })
@Test(timeout = 360000)
public void testPrimaryPlacement() throws Exception {
// Create a table with REGION_NUM regions.
@@ -162,15 +168,17 @@ public class TestRegionPlacement {
return expected.equals(rswithNumRegions);
}
+ // Marked as unstable and recored in #2747703
+ @TestTag({ "unstable" })
@Test(timeout = 360000)
public void testRegionPlacement() throws Exception {
AssignmentPlan currentPlan;
// ONLY meta regions, ROOT and META, are assigned at beginning.
verifyRegionMovementNum(META_REGION_NUM);
-
+
// Create a table with REGION_NUM regions.
createTable("testRegionAssignment", REGION_NUM);
-
+
// Test case1: Verify the region assignment for the exiting table
// is consistent with the assignment plan and all the region servers get
// correctly favored nodes updated.
@@ -190,24 +198,24 @@ public class TestRegionPlacement {
// Verify all the region server are update with the latest favored nodes
verifyRegionServerUpdated(currentPlan);
RegionPlacement.printAssignmentPlan(currentPlan);
- // Test Case 2: To verify whether the region placement tools can
+ // Test Case 2: To verify whether the region placement tools can
// correctly update the new assignment plan to META and Region Server.
// The new assignment plan is generated by shuffle the existing assignment
// plan by switching PRIMARY, SECONDARY and TERTIARY nodes.
// Shuffle the plan by switching the secondary region server with
// the tertiary.
-
+
// Shuffle the secondary with tertiary favored nodes
AssignmentPlan shuffledPlan = this.shuffleAssignmentPlan(currentPlan,
AssignmentPlan.POSITION.SECONDARY, AssignmentPlan.POSITION.TERTIARY);
// Let the region placement update the META and Region Servers
rp.updateAssignmentPlan(shuffledPlan);
-
+
// Verify the region assignment. There are supposed to no region reassignment
// All the regions are still on the primary regio region server
verifyRegionAssignment(shuffledPlan,0, REGION_NUM);
-
+
// Shuffle the plan by switching the primary with secondary and
// verify the region reassignment is consistent with the plan.
shuffledPlan = this.shuffleAssignmentPlan(currentPlan,
@@ -216,8 +224,8 @@ public class TestRegionPlacement {
// Let the region placement update the META and Region Servers
rp.updateAssignmentPlan(shuffledPlan);
verifyRegionAssignment(shuffledPlan, REGION_NUM, REGION_NUM);
-
- // Test Case 3: Kill the region server with META region and verify the
+
+ // Test Case 3: Kill the region server with META region and verify the
// region movements and region on primary region server are expected.
HRegionServer meta = this.getRegionServerWithMETA();
// Get the expected the num of the regions on the its primary region server
@@ -227,14 +235,14 @@ public class TestRegionPlacement {
META_REGION_OVERHEAD;
verifyKillRegionServerWithMetaOrRoot(meta, expectedRegionOnPrimaryRS);
RegionPlacement.printAssignmentPlan(currentPlan);
- // Test Case 4: Kill the region sever with ROOT and verify the
+ // Test Case 4: Kill the region sever with ROOT and verify the
// region movements and region on primary region server are expected.
HRegionServer root = this.getRegionServerWithROOT();
// Get the expected the num of the regions on the its primary region server
Collection<HRegion> regionOnRootRegionServer = root.getOnlineRegions();
expectedRegionOnPrimaryRS = lastRegionOnPrimaryRSCount -
regionOnRootRegionServer.size() + ROOT_REGION_OVERHEAD;
-
+
// Adjust the number by removing the regions just moved to the ROOT region server
for (HRegion region : regionOnRootRegionServer) {
if (regionOnMetaRegionServer.contains(region))
@@ -249,12 +257,12 @@ public class TestRegionPlacement {
* region servers.
* Also it will verify weather the number of region movement and
* the number regions on the primary region server are expected
- *
+ *
* @param plan
* @param regionMovementNum
* @param numRegionsOnPrimaryRS
- * @throws InterruptedException
- * @throws IOException
+ * @throws InterruptedException
+ * @throws IOException
*/
private void verifyRegionAssignment(AssignmentPlan plan,
int regionMovementNum, int numRegionsOnPrimaryRS)
@@ -288,19 +296,19 @@ public class TestRegionPlacement {
// Verify this region server with META is also hosting user regions
int expectedRegionMovement = server.getOnlineRegions().size();
assertTrue("All the user regions are assigned to this region server: " +
- server.getServerInfo().getHostnamePort(),
+ server.getServerInfo().getHostnamePort(),
(expectedRegionMovement < REGION_NUM));
assertTrue("NO the user region is assigned to this region server: " +
- server.getServerInfo().getHostnamePort(),
+ server.getServerInfo().getHostnamePort(),
(expectedRegionMovement > 1) );
// Kill the region server;
server.kill();
-
+
// Verify the user regions previously on the killed rs are reassigned.
verifyRegionMovementNum(expectedRegionMovement);
-
- // Verify only expectedRegionOnPrimary of the user regions are assigned
+
+ // Verify only expectedRegionOnPrimary of the user regions are assigned
// to the primary region server based on the plan.
verifyRegionOnPrimaryRS(expectedRegionOnPrimary);
}
@@ -321,7 +329,7 @@ public class TestRegionPlacement {
}
return null;
}
-
+
/**
* Get the region server who is currently hosting META
* @return
@@ -347,7 +355,7 @@ public class TestRegionPlacement {
throws InterruptedException {
MiniHBaseCluster cluster = TEST_UTIL.getHBaseCluster();
HMaster m = cluster.getMaster();
-
+
int retry = 10;
long sleep = 3 * TEST_UTIL.getConfiguration().
getInt("hbase.regionserver.msginterval", 1000);
@@ -357,13 +365,13 @@ public class TestRegionPlacement {
currentRegionOpened = m.getMetrics().getRegionsOpened();
regionMovement= currentRegionOpened - lastRegionOpenedCount;
LOG.debug("There are " + regionMovement + "/" + expected +
- " regions moved after " + attempt + " attempts");
+ " regions moved after " + attempt + " attempts");
Thread.sleep((++attempt) * sleep);
} while (regionMovement != expected && attempt <= retry);
// update the lastRegionOpenedCount
lastRegionOpenedCount = currentRegionOpened;
-
+
assertEquals("There are only " + regionMovement + " instead of "
+ expected + " region movement for " + attempt + " attempts",
regionMovement, expected);
@@ -399,7 +407,7 @@ public class TestRegionPlacement {
}
/**
- * Verify the number of user regions is assigned to the primary
+ * Verify the number of user regions is assigned to the primary
* region server based on the plan is expected
* @param expectedNum.
* @throws IOException
@@ -486,6 +494,7 @@ public class TestRegionPlacement {
final AtomicInteger totalRegionNum = new AtomicInteger(0);
LOG.info("The start of region placement verification");
MetaScannerVisitor visitor = new MetaScannerVisitor() {
+ @Override
public boolean processRow(Result result) throws IOException {
try {
byte[] regionInfo = result.getValue(HConstants.CATALOG_FAMILY,
@@ -536,7 +545,7 @@ public class TestRegionPlacement {
" region servers" );
return regionOnPrimaryNum.intValue() ;
}
-
+
/**
* Create a table with specified table name and region number.
* @param table
Modified: hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/master/TestRegionStateOnMasterFailure.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/master/TestRegionStateOnMasterFailure.java?rev=1577643&r1=1577642&r2=1577643&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/master/TestRegionStateOnMasterFailure.java (original)
+++ hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/master/TestRegionStateOnMasterFailure.java Fri Mar 14 18:09:57 2014
@@ -52,11 +52,15 @@ import org.apache.hadoop.hbase.regionser
import org.apache.hadoop.hbase.regionserver.HRegionServer;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.hbase.util.JVMClusterUtil.RegionServerThread;
+import org.apache.hadoop.hbase.util.TagRunner;
+import org.apache.hadoop.hbase.util.TestTag;
import org.apache.zookeeper.KeeperException;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
+import org.junit.runner.RunWith;
+@RunWith(TagRunner.class)
public class TestRegionStateOnMasterFailure extends MultiMasterTest {
private static final Log LOG =
@@ -78,15 +82,16 @@ public class TestRegionStateOnMasterFail
private static final int NUM_MASTERS = 2;
private static final int NUM_RS = 3;
- private static final int TEST_TIMEOUT_MS = 90 * 1000 * 1234567;
+ private static final int TEST_TIMEOUT_MS = 90 * 1000 * 1234567;
private static final Pattern META_AND_ROOT_RE = Pattern.compile(
- (Bytes.toStringBinary(HConstants.META_TABLE_NAME) + "|" +
+ (Bytes.toStringBinary(HConstants.META_TABLE_NAME) + "|" +
Bytes.toStringBinary(HConstants.ROOT_TABLE_NAME)).replace(".", "\\."));
private List<HBaseEventHandlerListener> toUnregister =
new ArrayList<HBaseEventHandlerListener>();
+ @Override
@After
public void tearDown() throws IOException {
for (HBaseEventHandlerListener listener : toUnregister) {
@@ -100,7 +105,7 @@ public class TestRegionStateOnMasterFail
void closeRegion(HRegion region) throws IOException;
}
- private class CloseRegionThroughAdmin implements WayToCloseRegion {
+ private class CloseRegionThroughAdmin implements WayToCloseRegion {
@Override
public void closeRegion(HRegion region) throws IOException {
header("Closing region " + region.getRegionNameAsString());
@@ -109,6 +114,7 @@ public class TestRegionStateOnMasterFail
};
private class KillRegionServerWithRegion implements WayToCloseRegion {
+ @Override
public void closeRegion(HRegion region) throws IOException {
header("Aborting the region server with the region " +
region.getRegionNameAsString());
@@ -116,13 +122,14 @@ public class TestRegionStateOnMasterFail
"region " + region);
}
}
-
+
/** Kills -ROOT- and .META. regionservers */
private class KillRootAndMetaRS implements WayToCloseRegion {
+ @Override
public void closeRegion(HRegion ignored) throws IOException {
// Copy the list of region server threads because it will be modified as we kill
// -ROOT-/.META. regionservers.
- for (RegionServerThread rst :
+ for (RegionServerThread rst :
new ArrayList<RegionServerThread>(miniCluster().getRegionServerThreads())) {
HRegionServer rs = rst.getRegionServer();
for (HRegionInfo hri : rs.getRegionsAssignment()) {
@@ -181,6 +188,8 @@ public class TestRegionStateOnMasterFail
HBaseEventType.RS2ZK_REGION_OPENED);
}
+ // Marked as unstable and recorded in #3920920
+ @TestTag({ "unstable" })
@Test(timeout=TEST_TIMEOUT_MS)
public void testKillRSWithUserRegion() throws IOException,
InterruptedException, KeeperException {
@@ -205,7 +214,7 @@ public class TestRegionStateOnMasterFail
closeRegionAndKillMaster(HConstants.META_TABLE_NAME, new KillRootAndMetaRS(),
HBaseEventType.RS2ZK_REGION_OPENED);
}
-
+
public void closeRegionAndKillMaster(byte[] tableName,
WayToCloseRegion howToClose, HBaseEventType eventToWatch)
throws IOException, InterruptedException, KeeperException {
@@ -405,7 +414,7 @@ public class TestRegionStateOnMasterFail
LOG.info(REGION_EVENT_MSG + "Event: " + eventType + ", handler: " +
event.getClass().getSimpleName());
- if (eventType != eventToWatch ||
+ if (eventType != eventToWatch ||
!(event instanceof MasterOpenRegionHandler ||
event instanceof MasterCloseRegionHandler)) {
LOG.info(REGION_EVENT_MSG + "Unrecognized event type/class: " + eventType + ", " +
Modified: hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/regionserver/metrics/TestThriftMetrics.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/regionserver/metrics/TestThriftMetrics.java?rev=1577643&r1=1577642&r2=1577643&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/regionserver/metrics/TestThriftMetrics.java (original)
+++ hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/regionserver/metrics/TestThriftMetrics.java Fri Mar 14 18:09:57 2014
@@ -20,7 +20,10 @@
package org.apache.hadoop.hbase.regionserver.metrics;
+import java.io.IOException;
+
import junit.framework.TestCase;
+
import org.apache.hadoop.hbase.HBaseTestingUtility;
import org.apache.hadoop.hbase.HConstants;
import org.apache.hadoop.hbase.client.Get;
@@ -28,14 +31,16 @@ import org.apache.hadoop.hbase.client.HT
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.regionserver.HRegionServer;
import org.apache.hadoop.hbase.util.Bytes;
+import org.apache.hadoop.hbase.util.TagRunner;
+import org.apache.hadoop.hbase.util.TestTag;
import org.junit.Test;
-
-import java.io.IOException;
+import org.junit.runner.RunWith;
/**
* Test to verify that the thrift metrics are calculated and propagated in the
* HBaseRpcMetrics.
*/
+@RunWith(TagRunner.class)
public class TestThriftMetrics extends TestCase {
private final HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();
private final int SLAVES = 1;
@@ -47,6 +52,8 @@ public class TestThriftMetrics extends T
* A simple test to see if the metrics are populated.
* @throws IOException
*/
+ // Marked as unstable and recored in #3921380
+ @TestTag({ "unstable" })
@Test
public void testThriftMetricsArePopulated() throws IOException,
InterruptedException {
Modified: hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRolling.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRolling.java?rev=1577643&r1=1577642&r2=1577643&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRolling.java (original)
+++ hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRolling.java Fri Mar 14 18:09:57 2014
@@ -31,13 +31,15 @@ import org.apache.hadoop.hbase.HBaseClus
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HConstants;
import org.apache.hadoop.hbase.HTableDescriptor;
-import org.apache.hadoop.hbase.regionserver.HRegionServer;
-import org.apache.hadoop.hbase.regionserver.HRegion;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put;
+import org.apache.hadoop.hbase.regionserver.HRegion;
+import org.apache.hadoop.hbase.regionserver.HRegionServer;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.hbase.util.FSUtils;
+import org.apache.hadoop.hbase.util.TagRunner;
+import org.apache.hadoop.hbase.util.TestTag;
import org.apache.hadoop.hdfs.DFSClient;
import org.apache.hadoop.hdfs.MiniDFSCluster.DataNodeProperties;
import org.apache.hadoop.hdfs.protocol.DatanodeInfo;
@@ -45,10 +47,12 @@ import org.apache.hadoop.hdfs.server.dat
import org.apache.hadoop.hdfs.server.namenode.FSNamesystem;
import org.apache.hadoop.hdfs.server.namenode.LeaseManager;
import org.apache.log4j.Level;
+import org.junit.runner.RunWith;
/**
* Test log deletion as logs are rolled.
*/
+@RunWith(TagRunner.class)
public class TestLogRolling extends HBaseClusterTestCase {
private static final Log LOG = LogFactory.getLog(TestLogRolling.class);
private HRegionServer server;
@@ -120,11 +124,11 @@ public class TestLogRolling extends HBas
/**** configuration for testLogRollOnDatanodeDeath ****/
// make sure log.hflush() calls syncFs() to open a pipeline
conf.setBoolean("dfs.support.append", true);
- // lower the namenode & datanode heartbeat so the namenode
+ // lower the namenode & datanode heartbeat so the namenode
// quickly detects datanode failures
conf.setInt("heartbeat.recheck.interval", 5000);
conf.setInt("dfs.heartbeat.interval", 1);
- // the namenode might still try to choose the recently-dead datanode
+ // the namenode might still try to choose the recently-dead datanode
// for a pipeline, so try to a new pipeline multiple times
conf.setInt("dfs.client.block.write.retries", 30);
conf.setBoolean(HConstants.HLOG_FORMAT_BACKWARD_COMPATIBILITY, false);
@@ -163,6 +167,8 @@ public class TestLogRolling extends HBas
*
* @throws Exception
*/
+ // Marked as unstable and recored in #3896573
+ @TestTag({ "unstable" })
public void testLogRolling() throws Exception {
this.tableName = getName();
try {
@@ -202,22 +208,24 @@ public class TestLogRolling extends HBas
// continue
}
}
-
+
/**
* Tests that logs are rolled upon detecting datanode death
* Requires an HDFS jar with HDFS-826 & syncFs() support (HDFS-200)
- *
+ *
* @throws Exception
*/
+ // Marked as unstable and recored in #3344583
+ @TestTag({ "unstable" })
public void testLogRollOnDatanodeDeath() throws Exception {
- assertTrue("This test requires HLog file replication.",
+ assertTrue("This test requires HLog file replication.",
fs.getDefaultReplication() > 1);
-
+
// When the META table can be opened, the region servers are running
new HTable(conf, HConstants.META_TABLE_NAME);
this.server = cluster.getRegionServer(0);
this.log = server.getLog(0);
-
+
assertTrue("Need HDFS-826 for this test", log.canGetCurReplicas());
// don't run this test without append support (HDFS-200 & HDFS-142)
assertTrue("Need append support for this test", FSUtils.isAppendSupported(conf));
@@ -225,7 +233,7 @@ public class TestLogRolling extends HBas
// add up the datanode count, to ensure proper replication when we kill 1
dfsCluster.startDataNodes(conf, 1, true, null, null);
dfsCluster.waitActive();
- assertTrue(dfsCluster.getDataNodes().size() >=
+ assertTrue(dfsCluster.getDataNodes().size() >=
fs.getDefaultReplication() + 1);
// Create the test table and open it
@@ -239,12 +247,12 @@ public class TestLogRolling extends HBas
long curTime = System.currentTimeMillis();
long oldFilenum = log.getFilenum();
- assertTrue("Log should have a timestamp older than now",
+ assertTrue("Log should have a timestamp older than now",
curTime > oldFilenum && oldFilenum != -1);
// normal write
writeData(table, 1);
- assertTrue("The log shouldn't have rolled yet",
+ assertTrue("The log shouldn't have rolled yet",
oldFilenum == log.getFilenum());
// kill a datanode in the pipeline to force a log roll on the next sync()
@@ -257,7 +265,7 @@ public class TestLogRolling extends HBas
break;
}
}
- assertTrue("Need DFSOutputStream.getPipeline() for this test",
+ assertTrue("Need DFSOutputStream.getPipeline() for this test",
getPipeline != null);
Object repl = getPipeline.invoke(stm, new Object []{} /*NO_ARGS*/);
DatanodeInfo[] pipeline = (DatanodeInfo[]) repl;
@@ -268,12 +276,12 @@ public class TestLogRolling extends HBas
// this write should succeed, but trigger a log roll
writeData(table, 2);
long newFilenum = log.getFilenum();
- assertTrue("Missing datanode should've triggered a log roll",
+ assertTrue("Missing datanode should've triggered a log roll",
newFilenum > oldFilenum && newFilenum > curTime);
-
+
// write some more log data (this should use a new hdfs_out)
writeData(table, 3);
- assertTrue("The log should not roll again.",
+ assertTrue("The log should not roll again.",
log.getFilenum() == newFilenum);
assertEquals(fs.getDefaultReplication(), log.getLogReplication());
}
Modified: hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALReplay.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALReplay.java?rev=1577643&r1=1577642&r2=1577643&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALReplay.java (original)
+++ hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALReplay.java Fri Mar 14 18:09:57 2014
@@ -40,9 +40,12 @@ import org.apache.hadoop.hbase.HTableDes
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.MasterNotRunningException;
import org.apache.hadoop.hbase.MiniHBaseCluster;
+import org.apache.hadoop.hbase.client.Delete;
import org.apache.hadoop.hbase.client.Get;
+import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Result;
+import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.io.hfile.HFile;
import org.apache.hadoop.hbase.monitoring.MonitoredTask;
@@ -52,20 +55,20 @@ import org.apache.hadoop.hbase.regionser
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.hbase.util.EnvironmentEdge;
import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
-import org.apache.hadoop.hbase.client.Delete;
-import org.apache.hadoop.hbase.client.HTable;
-import org.apache.hadoop.hbase.client.ResultScanner;
-
+import org.apache.hadoop.hbase.util.TagRunner;
+import org.apache.hadoop.hbase.util.TestTag;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
+import org.junit.runner.RunWith;
import org.mockito.Mockito;
/**
* Test replay of edits out of a WAL split.
*/
+@RunWith(TagRunner.class)
public class TestWALReplay {
public static final Log LOG = LogFactory.getLog(TestWALReplay.class);
private final static HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();
@@ -229,6 +232,7 @@ public class TestWALReplay {
* @throws IllegalArgumentException
* @throws SecurityException
*/
+ @TestTag({ "unstable" })
@Test
public void testReplayEditsWrittenViaHRegion()
throws IOException, SecurityException, IllegalArgumentException,
@@ -456,6 +460,7 @@ public class TestWALReplay {
try {
final HRegion region = new HRegion(basedir, newWal, newFS, newConf, hri,
null) {
+ @Override
protected boolean internalFlushcache(HLog wal, long myseqid,
MonitoredTask status)
throws IOException {
Modified: hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSink.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSink.java?rev=1577643&r1=1577642&r2=1577643&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSink.java (original)
+++ hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSink.java Fri Mar 14 18:09:57 2014
@@ -19,6 +19,11 @@
*/
package org.apache.hadoop.hbase.replication.regionserver;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.util.concurrent.atomic.AtomicBoolean;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.conf.Configuration;
@@ -34,16 +39,15 @@ import org.apache.hadoop.hbase.regionser
import org.apache.hadoop.hbase.regionserver.wal.HLogKey;
import org.apache.hadoop.hbase.regionserver.wal.WALEdit;
import org.apache.hadoop.hbase.util.Bytes;
+import org.apache.hadoop.hbase.util.TagRunner;
+import org.apache.hadoop.hbase.util.TestTag;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
+import org.junit.runner.RunWith;
-import java.util.concurrent.atomic.AtomicBoolean;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
+@RunWith(TagRunner.class)
public class TestReplicationSink {
private static final Log LOG =
@@ -171,6 +175,7 @@ public class TestReplicationSink {
* Insert then do different types of deletes
* @throws Exception
*/
+ @TestTag({ "unstable" })
@Test
public void testMixedDeletes() throws Exception {
HLog.Entry[] entries = new HLog.Entry[3];
Modified: hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/util/TestProcessBasedCluster.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/util/TestProcessBasedCluster.java?rev=1577643&r1=1577642&r2=1577643&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/util/TestProcessBasedCluster.java (original)
+++ hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/util/TestProcessBasedCluster.java Fri Mar 14 18:09:57 2014
@@ -30,10 +30,12 @@ import org.apache.hadoop.hbase.client.HT
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.ResultScanner;
import org.junit.Test;
+import org.junit.runner.RunWith;
/**
* A basic unit test that spins up a local HBase cluster.
*/
+@RunWith(TagRunner.class)
public class TestProcessBasedCluster {
private static final Log LOG = LogFactory.getLog(TestProcessBasedCluster.class);
@@ -45,6 +47,8 @@ public class TestProcessBasedCluster {
private static final HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();
+ // Marked as unstable, recorded as #3866088
+ @TestTag({ "unstable" })
@Test(timeout=300 * 1000)
public void testProcessBasedCluster() throws Exception {
ProcessBasedLocalHBaseCluster cluster = new ProcessBasedLocalHBaseCluster(