You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by gr...@apache.org on 2021/02/02 15:44:10 UTC
[kudu] 01/02: [test] Use the kudu binary in the external mini
cluster
This is an automated email from the ASF dual-hosted git repository.
granthenke pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kudu.git
commit 2e580fe863b086cf16fd9d285dd56ba817f64cd3
Author: Grant Henke <gr...@apache.org>
AuthorDate: Tue Feb 19 08:35:17 2019 -0600
[test] Use the kudu binary in the external mini cluster
This patch changes the external mini cluster to use
the kudu binary and its ability to start a master and
tserver instead of the kudu-master and kudu-tserver
binaries. This means the kudu-binary jar only needs
to ship a single binary.
Change-Id: Ie963f5d50571f3d5ce55e40fcded245bf29b1b55
Reviewed-on: http://gerrit.cloudera.org:8080/12523
Reviewed-by: Grant Henke <gr...@apache.org>
Tested-by: Grant Henke <gr...@apache.org>
---
build-support/dist_test.py | 7 +----
.../integration-tests/security-faults-itest.cc | 4 +--
src/kudu/integration-tests/security-itest.cc | 11 +++++---
src/kudu/mini-cluster/external_mini_cluster.cc | 30 ++++++++++------------
src/kudu/mini-cluster/external_mini_cluster.h | 1 -
5 files changed, 25 insertions(+), 28 deletions(-)
diff --git a/build-support/dist_test.py b/build-support/dist_test.py
index 89e53bf..dae260d 100755
--- a/build-support/dist_test.py
+++ b/build-support/dist_test.py
@@ -94,12 +94,7 @@ DEPS_FOR_ALL = \
# The LLVM symbolizer is necessary for suppressions to work
"thirdparty/installed/uninstrumented/bin/llvm-symbolizer",
- # Tests that use the external minicluster require these.
- # TODO: declare these dependencies per-test.
- "build/latest/bin/kudu-tserver",
- "build/latest/bin/kudu-master",
-
- # Tests that require tooling require this.
+ # Tests that require the the external minicluster or tooling require this.
"build/latest/bin/kudu",
# The HMS tests require the Hadoop, and Hive libraries.
diff --git a/src/kudu/integration-tests/security-faults-itest.cc b/src/kudu/integration-tests/security-faults-itest.cc
index a27c722..67880b0 100644
--- a/src/kudu/integration-tests/security-faults-itest.cc
+++ b/src/kudu/integration-tests/security-faults-itest.cc
@@ -191,7 +191,7 @@ TEST_F(SecurityComponentsFaultsITest, NoKdcOnStart) {
const Status s = server->Restart();
ASSERT_TRUE(s.IsRuntimeError()) << s.ToString();
ASSERT_STR_CONTAINS(s.ToString(),
- "kudu-master: process exited with non-zero status 3");
+ "kudu: process exited with non-zero status 1");
}
{
auto server = cluster_->tablet_server(0);
@@ -199,7 +199,7 @@ TEST_F(SecurityComponentsFaultsITest, NoKdcOnStart) {
const Status s = server->Restart();
ASSERT_TRUE(s.IsRuntimeError()) << s.ToString();
ASSERT_STR_CONTAINS(s.ToString(),
- "kudu-tserver: process exited with non-zero status 3");
+ "kudu: process exited with non-zero status 1");
}
}
diff --git a/src/kudu/integration-tests/security-itest.cc b/src/kudu/integration-tests/security-itest.cc
index 07ba0a3..0db25f7 100644
--- a/src/kudu/integration-tests/security-itest.cc
+++ b/src/kudu/integration-tests/security-itest.cc
@@ -376,9 +376,12 @@ void GetFullBinaryPath(string* binary) {
TEST_F(SecurityITest, TestWorldReadableKeytab) {
const string credentials_name = GetTestPath("insecure.keytab");
NO_FATALS(CreateWorldReadableFile(credentials_name));
- string binary = "kudu-master";
+ string binary = "kudu";
NO_FATALS(GetFullBinaryPath(&binary));
- const vector<string> argv = { binary, Substitute("--keytab_file=$0", credentials_name) };
+ const vector<string> argv = { binary,
+ "master",
+ "run",
+ Substitute("--keytab_file=$0", credentials_name) };
string stderr;
Status s = Subprocess::Call(argv, "", nullptr, &stderr);
ASSERT_STR_CONTAINS(stderr, Substitute(
@@ -389,9 +392,11 @@ TEST_F(SecurityITest, TestWorldReadableKeytab) {
TEST_F(SecurityITest, TestWorldReadablePrivateKey) {
const string credentials_name = GetTestPath("insecure.key");
NO_FATALS(CreateWorldReadableFile(credentials_name));
- string binary = "kudu-master";
+ string binary = "kudu";
NO_FATALS(GetFullBinaryPath(&binary));
const vector<string> argv = { binary,
+ "master",
+ "run",
"--unlock_experimental_flags",
Substitute("--rpc_private_key_file=$0", credentials_name),
"--rpc_certificate_file=fake_file",
diff --git a/src/kudu/mini-cluster/external_mini_cluster.cc b/src/kudu/mini-cluster/external_mini_cluster.cc
index 7e09fd6..7d6341c 100644
--- a/src/kudu/mini-cluster/external_mini_cluster.cc
+++ b/src/kudu/mini-cluster/external_mini_cluster.cc
@@ -107,8 +107,7 @@ DEFINE_bool(perf_record, false,
namespace kudu {
namespace cluster {
-static const char* const kMasterBinaryName = "kudu-master";
-static const char* const kTabletServerBinaryName = "kudu-tserver";
+static const char* const kKuduBinaryName = "kudu";
static double kTabletServerRegistrationTimeoutSeconds = 15.0;
static double kMasterCatalogManagerTimeoutSeconds = 60.0;
@@ -410,10 +409,10 @@ void ExternalMiniCluster::DisableMetastoreIntegration() {
void ExternalMiniCluster::SetDaemonBinPath(string daemon_bin_path) {
opts_.daemon_bin_path = std::move(daemon_bin_path);
for (auto& master : masters_) {
- master->SetExePath(GetBinaryPath(kMasterBinaryName));
+ master->SetExePath(GetBinaryPath(kKuduBinaryName));
}
for (auto& ts : tablet_servers_) {
- ts->SetExePath(GetBinaryPath(kTabletServerBinaryName));
+ ts->SetExePath(GetBinaryPath(kKuduBinaryName));
}
}
@@ -534,7 +533,7 @@ Status ExternalMiniCluster::StartMasters() {
std::back_inserter(flags));
// Start the masters.
- const string& exe = GetBinaryPath(kMasterBinaryName);
+ const string& exe = GetBinaryPath(kKuduBinaryName);
for (int i = 0; i < num_masters; i++) {
string daemon_id = Substitute("master-$0", i);
@@ -611,7 +610,7 @@ Status ExternalMiniCluster::AddTabletServer() {
ExternalDaemonOptions opts;
opts.messenger = messenger_;
opts.block_manager_type = opts_.block_manager_type;
- opts.exe = GetBinaryPath(kTabletServerBinaryName);
+ opts.exe = GetBinaryPath(kKuduBinaryName);
opts.wal_dir = GetWalPath(daemon_id);
opts.data_dirs = GetDataPaths(daemon_id);
opts.log_dir = GetLogPath(daemon_id);
@@ -1472,17 +1471,14 @@ Status ExternalMaster::WaitForCatalogManager(WaitMode wait_mode) {
}
const vector<string>& ExternalMaster::GetCommonFlags() {
- static vector<string> kFlags;
+ static vector<string> kFlags { "master", "run" };
if (!UseLargeKeys()) {
- kFlags = {
- // See the in-line comment for "--ipki_server_key_size" flag in
- // ExternalDaemon::StartProcess() method.
- "--ipki_ca_key_size=768",
-
- // As for the TSK keys, 512 bits is the minimum since we are using
- // SHA256 digest for token signing/verification.
- "--tsk_num_rsa_bits=512",
- };
+ // See the in-line comment for "--ipki_server_key_size" flag in
+ // ExternalDaemon::StartProcess() method.
+ kFlags.emplace_back("--ipki_ca_key_size=768");
+ // As for the TSK keys, 512 bits is the minimum since we are using
+ // SHA256 digest for token signing/verification.
+ kFlags.emplace_back("--tsk_num_rsa_bits=512");
}
return kFlags;
}
@@ -1503,6 +1499,7 @@ ExternalTabletServer::~ExternalTabletServer() {
Status ExternalTabletServer::Start() {
vector<string> flags {
+ "tserver", "run",
Substitute("--rpc_bind_addresses=$0", rpc_bind_address().ToString()),
Substitute("--local_ip_for_outbound_sockets=$0", rpc_bind_address().host()),
Substitute("--webserver_interface=$0", rpc_bind_address().host()),
@@ -1519,6 +1516,7 @@ Status ExternalTabletServer::Restart() {
return Status::IllegalState("Tablet server cannot be restarted. Must call Shutdown() first.");
}
vector<string> flags {
+ "tserver", "run",
Substitute("--rpc_bind_addresses=$0", bound_rpc_.ToString()),
Substitute("--local_ip_for_outbound_sockets=$0", rpc_bind_address().host()),
Substitute("--tserver_master_addrs=$0",
diff --git a/src/kudu/mini-cluster/external_mini_cluster.h b/src/kudu/mini-cluster/external_mini_cluster.h
index 4d1d776..be5d3b5 100644
--- a/src/kudu/mini-cluster/external_mini_cluster.h
+++ b/src/kudu/mini-cluster/external_mini_cluster.h
@@ -31,7 +31,6 @@
#include <boost/optional/optional.hpp>
#include <glog/logging.h>
-#include "kudu/client/shared_ptr.h" // IWYU pragma: keep
#include "kudu/common/common.pb.h"
#include "kudu/gutil/macros.h"
#include "kudu/gutil/port.h"