You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by sa...@apache.org on 2017/08/29 20:36:49 UTC
phoenix git commit: PHOENIX-4132 TestIndexWriter hangs on 1.8 JRE
Repository: phoenix
Updated Branches:
refs/heads/4.x-HBase-0.98 08e2a29f6 -> 1ab9e7dfb
PHOENIX-4132 TestIndexWriter hangs on 1.8 JRE
Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/1ab9e7df
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/1ab9e7df
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/1ab9e7df
Branch: refs/heads/4.x-HBase-0.98
Commit: 1ab9e7dfb619db1f500ae80b22505baf967eaf34
Parents: 08e2a29
Author: Samarth Jain <sa...@apache.org>
Authored: Tue Aug 29 13:36:35 2017 -0700
Committer: Samarth Jain <sa...@apache.org>
Committed: Tue Aug 29 13:36:35 2017 -0700
----------------------------------------------------------------------
.../hbase/index/write/TestIndexWriter.java | 25 ++++++++++++--------
.../index/write/TestParalleIndexWriter.java | 4 ++--
.../write/TestParalleWriterIndexCommitter.java | 4 ++--
3 files changed, 19 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/phoenix/blob/1ab9e7df/phoenix-core/src/test/java/org/apache/phoenix/hbase/index/write/TestIndexWriter.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/test/java/org/apache/phoenix/hbase/index/write/TestIndexWriter.java b/phoenix-core/src/test/java/org/apache/phoenix/hbase/index/write/TestIndexWriter.java
index d219f4c..88e4a96 100644
--- a/phoenix-core/src/test/java/org/apache/phoenix/hbase/index/write/TestIndexWriter.java
+++ b/phoenix-core/src/test/java/org/apache/phoenix/hbase/index/write/TestIndexWriter.java
@@ -52,6 +52,7 @@ import org.apache.phoenix.hbase.index.StubAbortable;
import org.apache.phoenix.hbase.index.TableName;
import org.apache.phoenix.hbase.index.exception.IndexWriteException;
import org.apache.phoenix.hbase.index.exception.SingleIndexWriteFailureException;
+import org.apache.phoenix.hbase.index.table.HTableInterfaceReference;
import org.apache.phoenix.hbase.index.util.ImmutableBytesPtr;
import org.junit.Rule;
import org.junit.Test;
@@ -59,6 +60,9 @@ import org.mockito.Mockito;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
+import com.google.common.collect.LinkedListMultimap;
+import com.google.common.collect.Multimap;
+
public class TestIndexWriter {
private static final Log LOG = LogFactory.getLog(TestIndexWriter.class);
@Rule
@@ -159,17 +163,9 @@ public class TestIndexWriter {
ExecutorService exec = Executors.newFixedThreadPool(1);
Map<ImmutableBytesPtr, HTableInterface> tables = new HashMap<ImmutableBytesPtr, HTableInterface>();
FakeTableFactory factory = new FakeTableFactory(tables);
-
// updates to two different tables
byte[] tableName = Bytes.add(this.testName.getTableName(), new byte[] { 1, 2, 3, 4 });
- Put m = new Put(row);
- m.add(Bytes.toBytes("family"), Bytes.toBytes("qual"), null);
byte[] tableName2 = this.testName.getTableName();// this will sort after the first tablename
- List<Pair<Mutation, byte[]>> indexUpdates = new ArrayList<Pair<Mutation, byte[]>>();
- indexUpdates.add(new Pair<Mutation, byte[]>(m, tableName));
- indexUpdates.add(new Pair<Mutation, byte[]>(m, tableName2));
- indexUpdates.add(new Pair<Mutation, byte[]>(m, tableName2));
-
// first table will fail
HTableInterface table = Mockito.mock(HTableInterface.class);
Mockito.when(table.batch(Mockito.anyList())).thenThrow(
@@ -209,8 +205,17 @@ public class TestIndexWriter {
policy.setup(stop, abort);
IndexWriter writer = new IndexWriter(committer, policy);
try {
- writer.write(indexUpdates);
- fail("Should not have successfully completed all index writes");
+ Put m = new Put(row);
+ m.add(Bytes.toBytes("family"), Bytes.toBytes("qual"), null);
+ HTableInterfaceReference ht1 = new HTableInterfaceReference(new ImmutableBytesPtr(tableName));
+ HTableInterfaceReference ht2 = new HTableInterfaceReference(new ImmutableBytesPtr(tableName2));
+ // We need to apply updates first for table1 and then table2.
+ Multimap<HTableInterfaceReference, Mutation> indexUpdates = LinkedListMultimap.create();
+ indexUpdates.put(ht1, m);
+ indexUpdates.put(ht2, m);
+ indexUpdates.put(ht2, m);
+ writer.write(indexUpdates, false);
+ fail("Should not have successfully completed all index writes");
} catch (SingleIndexWriteFailureException s) {
LOG.info("Correctly got a failure to reach the index", s);
// should have correctly gotten the correct abort, so let the next task execute
http://git-wip-us.apache.org/repos/asf/phoenix/blob/1ab9e7df/phoenix-core/src/test/java/org/apache/phoenix/hbase/index/write/TestParalleIndexWriter.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/test/java/org/apache/phoenix/hbase/index/write/TestParalleIndexWriter.java b/phoenix-core/src/test/java/org/apache/phoenix/hbase/index/write/TestParalleIndexWriter.java
index 8e4e7db..e62af7a 100644
--- a/phoenix-core/src/test/java/org/apache/phoenix/hbase/index/write/TestParalleIndexWriter.java
+++ b/phoenix-core/src/test/java/org/apache/phoenix/hbase/index/write/TestParalleIndexWriter.java
@@ -20,7 +20,7 @@ package org.apache.phoenix.hbase.index.write;
import static org.junit.Assert.assertTrue;
import java.util.Collections;
-import java.util.HashMap;
+import java.util.LinkedHashMap;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ExecutorService;
@@ -87,7 +87,7 @@ public class TestParalleIndexWriter {
Stoppable stop = Mockito.mock(Stoppable.class);
ExecutorService exec = Executors.newFixedThreadPool(1);
Map<ImmutableBytesPtr, HTableInterface> tables =
- new HashMap<ImmutableBytesPtr, HTableInterface>();
+ new LinkedHashMap<ImmutableBytesPtr, HTableInterface>();
FakeTableFactory factory = new FakeTableFactory(tables);
RegionCoprocessorEnvironment e =Mockito.mock(RegionCoprocessorEnvironment.class);
Configuration conf =new Configuration();
http://git-wip-us.apache.org/repos/asf/phoenix/blob/1ab9e7df/phoenix-core/src/test/java/org/apache/phoenix/hbase/index/write/TestParalleWriterIndexCommitter.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/test/java/org/apache/phoenix/hbase/index/write/TestParalleWriterIndexCommitter.java b/phoenix-core/src/test/java/org/apache/phoenix/hbase/index/write/TestParalleWriterIndexCommitter.java
index e737aa7..789e7a1 100644
--- a/phoenix-core/src/test/java/org/apache/phoenix/hbase/index/write/TestParalleWriterIndexCommitter.java
+++ b/phoenix-core/src/test/java/org/apache/phoenix/hbase/index/write/TestParalleWriterIndexCommitter.java
@@ -20,7 +20,7 @@ package org.apache.phoenix.hbase.index.write;
import static org.junit.Assert.assertTrue;
import java.util.Collections;
-import java.util.HashMap;
+import java.util.LinkedHashMap;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ExecutorService;
@@ -91,7 +91,7 @@ public class TestParalleWriterIndexCommitter {
Stoppable stop = Mockito.mock(Stoppable.class);
ExecutorService exec = Executors.newFixedThreadPool(1);
Map<ImmutableBytesPtr, HTableInterface> tables =
- new HashMap<ImmutableBytesPtr, HTableInterface>();
+ new LinkedHashMap<ImmutableBytesPtr, HTableInterface>();
FakeTableFactory factory = new FakeTableFactory(tables);
ImmutableBytesPtr tableName = new ImmutableBytesPtr(this.test.getTableName());