kudu git commit: ts_itest-base: chain to superclass TearDown
Repository: kudu Updated Branches: refs/heads/master 109fdc84e -> 15afb6495 ts_itest-base: chain to superclass TearDown This didn't cause any real trouble since no superclass in the hierarchy defines a TearDown, but it's a good practice in any case. Change-Id: Ic20da27c1333a69dc948095828300b03d2298a37 Reviewed-on: http://gerrit.cloudera.org:8080/9945 Tested-by: Kudu Jenkins Reviewed-by: Adar DemboProject: http://git-wip-us.apache.org/repos/asf/kudu/repo Commit: http://git-wip-us.apache.org/repos/asf/kudu/commit/15afb649 Tree: http://git-wip-us.apache.org/repos/asf/kudu/tree/15afb649 Diff: http://git-wip-us.apache.org/repos/asf/kudu/diff/15afb649 Branch: refs/heads/master Commit: 15afb649521438ca85119bec799e39e9dd3afcb0 Parents: 109fdc8 Author: Adar Dembo Authored: Fri Apr 6 10:43:17 2018 -0700 Committer: Adar Dembo Committed: Fri Apr 6 19:56:00 2018 + -- src/kudu/integration-tests/ts_itest-base.cc | 1 + 1 file changed, 1 insertion(+) -- http://git-wip-us.apache.org/repos/asf/kudu/blob/15afb649/src/kudu/integration-tests/ts_itest-base.cc -- diff --git a/src/kudu/integration-tests/ts_itest-base.cc b/src/kudu/integration-tests/ts_itest-base.cc index 6ec2000..cd2f238 100644 --- a/src/kudu/integration-tests/ts_itest-base.cc +++ b/src/kudu/integration-tests/ts_itest-base.cc @@ -512,6 +512,7 @@ Status TabletServerIntegrationTestBase::CheckTabletServersAreAlive(int num_table void TabletServerIntegrationTestBase::TearDown() { STLDeleteValues(_servers_); + TabletServerTestBase::TearDown(); } void TabletServerIntegrationTestBase::CreateClient(shared_ptr* client) {
kudu git commit: test_util: reset flags before cleaning test directory
Repository: kudu Updated Branches: refs/heads/master 15afb6495 -> 3f194c3a1 test_util: reset flags before cleaning test directory TabletServerDiskFailureTest.TestRandomOpSequence didn't reset env_inject_eio to 0 before finishing. Rather than fixing that, let's change KuduTest to reset its flags _before_ cleaning out the test directory. This obviates the need for all such workarounds. Change-Id: I4b4843cbc2c3bc2cbeb3a4d5959f80a35da7714a Reviewed-on: http://gerrit.cloudera.org:8080/9944 Tested-by: Kudu Jenkins Reviewed-by: Andrew WongProject: http://git-wip-us.apache.org/repos/asf/kudu/repo Commit: http://git-wip-us.apache.org/repos/asf/kudu/commit/3f194c3a Tree: http://git-wip-us.apache.org/repos/asf/kudu/tree/3f194c3a Diff: http://git-wip-us.apache.org/repos/asf/kudu/diff/3f194c3a Branch: refs/heads/master Commit: 3f194c3a17f11a70e64bf2668a96e1e93fed00df Parents: 15afb64 Author: Adar Dembo Authored: Fri Apr 6 10:41:26 2018 -0700 Committer: Adar Dembo Committed: Fri Apr 6 21:03:38 2018 + -- src/kudu/fs/block_manager-test.cc | 2 -- src/kudu/fs/data_dirs-test.cc | 1 - src/kudu/fs/fs_manager-test.cc| 24 +--- src/kudu/fs/log_block_manager-test.cc | 14 -- src/kudu/tablet/diskrowset-test.cc| 2 -- src/kudu/util/test_util.cc| 4 src/kudu/util/test_util.h | 12 ++-- 7 files changed, 31 insertions(+), 28 deletions(-) -- http://git-wip-us.apache.org/repos/asf/kudu/blob/3f194c3a/src/kudu/fs/block_manager-test.cc -- diff --git a/src/kudu/fs/block_manager-test.cc b/src/kudu/fs/block_manager-test.cc index e17a61e..9d5a590 100644 --- a/src/kudu/fs/block_manager-test.cc +++ b/src/kudu/fs/block_manager-test.cc @@ -998,7 +998,6 @@ TYPED_TEST(BlockManagerTest, TestMetadataOkayDespiteFailure) { false /* create */)); } } - FLAGS_env_inject_eio = 0; } TYPED_TEST(BlockManagerTest, TestGetAllBlockIds) { @@ -1147,7 +1146,6 @@ TYPED_TEST(BlockManagerTest, TestBlockTransaction) { ASSERT_STR_CONTAINS(s.ToString(), Substitute("only deleted $0 blocks, " "first failure", deleted_blocks.size())); - FLAGS_env_inject_eio = 0; } } // namespace fs http://git-wip-us.apache.org/repos/asf/kudu/blob/3f194c3a/src/kudu/fs/data_dirs-test.cc -- diff --git a/src/kudu/fs/data_dirs-test.cc b/src/kudu/fs/data_dirs-test.cc index 449780a..7d35f09 100644 --- a/src/kudu/fs/data_dirs-test.cc +++ b/src/kudu/fs/data_dirs-test.cc @@ -421,7 +421,6 @@ TEST_F(DataDirManagerTest, TestOpenWithFailedDirs) { DataDirManagerOptions(), _manager_); ASSERT_STR_CONTAINS(s.ToString(), "could not open directory manager"); ASSERT_TRUE(s.IsIOError()); - FLAGS_env_inject_eio = 0; } class TooManyDataDirManagerTest : public DataDirManagerTest { http://git-wip-us.apache.org/repos/asf/kudu/blob/3f194c3a/src/kudu/fs/fs_manager-test.cc -- diff --git a/src/kudu/fs/fs_manager-test.cc b/src/kudu/fs/fs_manager-test.cc index 4952a6b..5a76883 100644 --- a/src/kudu/fs/fs_manager-test.cc +++ b/src/kudu/fs/fs_manager-test.cc @@ -406,7 +406,6 @@ TEST_F(FsManagerTestBase, TestCreateWithFailedDirs) { Status s = fs_manager()->CreateInitialFileSystemLayout(); ASSERT_STR_MATCHES(s.ToString(), "cannot create FS layout; at least one directory " "failed to canonicalize"); - FLAGS_env_inject_eio = 0; } TEST_F(FsManagerTestBase, TestOpenWithNoBlockManagerInstances) { @@ -458,8 +457,6 @@ TEST_F(FsManagerTestBase, TestOpenWithFailedDirs) { ReinitFsManagerWithPaths(wal_path, data_roots); ASSERT_OK(fs_manager()->Open(nullptr)); ASSERT_EQ(1, fs_manager()->dd_manager()->GetFailedDataDirs().size()); - - FLAGS_env_inject_eio = 0; } TEST_F(FsManagerTestBase, TestTmpFilesCleanup) { @@ -633,19 +630,16 @@ TEST_F(FsManagerTestBase, TestAddRemoveDataDirs) { // Try to open with a new data dir although an existing data dir has failed; // this should fail. - { -google::FlagSaver saver; -FLAGS_crash_on_eio = false; -FLAGS_env_inject_eio = 1.0; -FLAGS_env_inject_eio_globs = JoinPathSegments(new_path2, "**"); + FLAGS_crash_on_eio = false; + FLAGS_env_inject_eio = 1.0; + FLAGS_env_inject_eio_globs = JoinPathSegments(new_path2, "**"); -const string new_path3 = GetTestPath("new_path3"); -opts.data_roots = { fs_root_, new_path2, new_path3 }; -ReinitFsManagerWithOpts(opts); -Status s = fs_manager()->Open(); -
kudu git commit: KUDU-16: implement Java client limits
Repository: kudu Updated Branches: refs/heads/master 3f194c3a1 -> a95441846 KUDU-16: implement Java client limits This patch implements the scanner limits for the Java client. Each AsyncKuduScanner will maintain a count of the number of rows already returned (per table scan), and based on this value, will update the per-tablet scan request. Change-Id: I83635fbbc7714318f8b95d91b7f178e9ca7ebff7 Reviewed-on: http://gerrit.cloudera.org:8080/9926 Reviewed-by: Grant HenkeTested-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/a9544184 Tree: http://git-wip-us.apache.org/repos/asf/kudu/tree/a9544184 Diff: http://git-wip-us.apache.org/repos/asf/kudu/diff/a9544184 Branch: refs/heads/master Commit: a95441846bb1381ff2543ffcddf3854184a111ea Parents: 3f194c3 Author: Andrew Wong Authored: Wed Apr 4 12:48:53 2018 -0700 Committer: Andrew Wong Committed: Sat Apr 7 00:15:23 2018 + -- .../kudu/client/AbstractKuduScannerBuilder.java | 4 -- .../apache/kudu/client/AsyncKuduScanner.java| 12 +++-- .../org/apache/kudu/client/TestKuduClient.java | 48 3 files changed, 57 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/kudu/blob/a9544184/java/kudu-client/src/main/java/org/apache/kudu/client/AbstractKuduScannerBuilder.java -- diff --git a/java/kudu-client/src/main/java/org/apache/kudu/client/AbstractKuduScannerBuilder.java b/java/kudu-client/src/main/java/org/apache/kudu/client/AbstractKuduScannerBuilder.java index f27c62b..4485eec 100644 --- a/java/kudu-client/src/main/java/org/apache/kudu/client/AbstractKuduScannerBuilder.java +++ b/java/kudu-client/src/main/java/org/apache/kudu/client/AbstractKuduScannerBuilder.java @@ -197,10 +197,6 @@ public abstract class AbstractKuduScannerBuilder * Sets a limit on the number of rows that will be returned by the scanner. There's no limit * by default. * - * WARNING: Currently setting the limit has no effect. - * See https://issues.apache.org/jira/browse/KUDU-16;>KUDU-16 for more - * information. - * * @param limit a positive long * @return this instance */ http://git-wip-us.apache.org/repos/asf/kudu/blob/a9544184/java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduScanner.java -- diff --git a/java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduScanner.java b/java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduScanner.java index 24581af..a2dd160 100644 --- a/java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduScanner.java +++ b/java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduScanner.java @@ -209,6 +209,8 @@ public final class AsyncKuduScanner { private boolean hasMore = true; + private long numRowsReturned = 0; + /** * The tabletSlice currently being scanned. * If null, we haven't started scanning. @@ -436,6 +438,8 @@ public final class AsyncKuduScanner { lastPrimaryKey = resp.lastPrimaryKey; } + numRowsReturned += resp.data.getNumRows(); + if (!resp.more || resp.scannerId == null) { scanFinished(); return Deferred.fromResult(resp.data); // there might be data to return @@ -519,6 +523,7 @@ public final class AsyncKuduScanner { private final Callback gotNextRow = new Callback () { public RowResultIterator call(final Response resp) { + numRowsReturned += resp.data.getNumRows(); if (!resp.more) { // We're done scanning this tablet. scanFinished(); return resp.data; @@ -566,8 +571,9 @@ public final class AsyncKuduScanner { void scanFinished() { Partition partition = tablet.getPartition(); pruner.removePartitionKeyRange(partition.getPartitionKeyEnd()); -// Stop scanning if we have scanned until or past the end partition key. -if (!pruner.hasMorePartitionKeyRanges()) { +// Stop scanning if we have scanned until or past the end partition key, or +// if we have fulfilled the limit. +if (!pruner.hasMorePartitionKeyRanges() || numRowsReturned >= limit) { hasMore = false; closed = true; // the scanner is closed on the other side at this point return; @@ -819,7 +825,7 @@ public final class AsyncKuduScanner { // is the easiest way. AsyncKuduScanner.this.tablet = super.getTablet(); NewScanRequestPB.Builder newBuilder = NewScanRequestPB.newBuilder(); - newBuilder.setLimit(limit); // currently ignored +