You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by da...@apache.org on 2017/11/28 00:21:49 UTC
kudu git commit: java-client: fix TestScannerMultiTablet
Repository: kudu
Updated Branches:
refs/heads/master f2d1dad67 -> 0aa4af56c
java-client: fix TestScannerMultiTablet
TestScannerMultiTablet could fail when the test cases were run in a
certain order, due to state left between test runs.
Change-Id: Iae3e1c7a6a48714f59379c06aca413e3d7cde7a5
Reviewed-on: http://gerrit.cloudera.org:8080/8655
Reviewed-by: Andrew Wong <aw...@cloudera.com>
Tested-by: Kudu Jenkins
Project: http://git-wip-us.apache.org/repos/asf/kudu/repo
Commit: http://git-wip-us.apache.org/repos/asf/kudu/commit/0aa4af56
Tree: http://git-wip-us.apache.org/repos/asf/kudu/tree/0aa4af56
Diff: http://git-wip-us.apache.org/repos/asf/kudu/diff/0aa4af56
Branch: refs/heads/master
Commit: 0aa4af56c6a7e9d33e7dda3a64412aadf6c4c300
Parents: f2d1dad
Author: Dan Burkert <da...@apache.org>
Authored: Mon Nov 27 15:03:18 2017 -0800
Committer: Dan Burkert <da...@apache.org>
Committed: Tue Nov 28 00:21:37 2017 +0000
----------------------------------------------------------------------
.../org/apache/kudu/client/BaseKuduTest.java | 20 +++++++++++++++-----
.../kudu/client/TestScannerMultiTablet.java | 3 +++
2 files changed, 18 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/kudu/blob/0aa4af56/java/kudu-client/src/test/java/org/apache/kudu/client/BaseKuduTest.java
----------------------------------------------------------------------
diff --git a/java/kudu-client/src/test/java/org/apache/kudu/client/BaseKuduTest.java b/java/kudu-client/src/test/java/org/apache/kudu/client/BaseKuduTest.java
index fc6f303..c1f8564 100644
--- a/java/kudu-client/src/test/java/org/apache/kudu/client/BaseKuduTest.java
+++ b/java/kudu-client/src/test/java/org/apache/kudu/client/BaseKuduTest.java
@@ -83,10 +83,8 @@ public class BaseKuduTest {
public static void tearDownAfterClass() throws Exception {
try {
if (client != null) {
- Deferred<ArrayList<Void>> d = client.shutdown();
- d.addErrback(defaultErrorCB);
- d.join(DEFAULT_SLEEP);
- // No need to explicitly shutdown the sync client,
+ syncClient.shutdown();
+ // No need to explicitly shutdown the async client,
// shutting down the async client effectively does that.
}
} finally {
@@ -120,7 +118,7 @@ public class BaseKuduTest {
client = new AsyncKuduClient.AsyncKuduClientBuilder(masterAddresses)
.defaultAdminOperationTimeoutMs(DEFAULT_SLEEP)
.build();
- syncClient = new KuduClient(client);
+ syncClient = client.syncClient();
}
protected static KuduTable createTable(String tableName, Schema schema,
@@ -495,4 +493,16 @@ public class BaseKuduTest {
protected void restartTabletServers() throws IOException {
miniCluster.restartDeadTservers();
}
+
+ /**
+ * Resets the clients so that their state is completely fresh, including meta
+ * cache, connections, open tables, sessions and scanners, and propagated timestamp.
+ */
+ protected void resetClients() throws IOException {
+ syncClient.shutdown();
+ client = new AsyncKuduClient.AsyncKuduClientBuilder(masterAddresses)
+ .defaultAdminOperationTimeoutMs(DEFAULT_SLEEP)
+ .build();
+ syncClient = client.syncClient();
+ }
}
http://git-wip-us.apache.org/repos/asf/kudu/blob/0aa4af56/java/kudu-client/src/test/java/org/apache/kudu/client/TestScannerMultiTablet.java
----------------------------------------------------------------------
diff --git a/java/kudu-client/src/test/java/org/apache/kudu/client/TestScannerMultiTablet.java b/java/kudu-client/src/test/java/org/apache/kudu/client/TestScannerMultiTablet.java
index 1bef824..036f857 100644
--- a/java/kudu-client/src/test/java/org/apache/kudu/client/TestScannerMultiTablet.java
+++ b/java/kudu-client/src/test/java/org/apache/kudu/client/TestScannerMultiTablet.java
@@ -242,6 +242,9 @@ public class TestScannerMultiTablet extends BaseKuduTest {
@Test(timeout = 100000)
public void testScanPropagatesLatestTimestamp() throws Exception {
+ // Reset the clients in order to clear the propagated timestamp, which may
+ // have been set if other test cases ran before this one.
+ resetClients();
AsyncKuduScanner scanner = client.newScannerBuilder(table).build();
// Initially, the client does not have the timestamp set.