diff --git a/run.sh b/run.sh index 2109b2f4ef..743eb2b961 100755 --- a/run.sh +++ b/run.sh @@ -27,7 +27,7 @@ export REPORT_DIR="$ROOT/test_report" export THIRDPARTY_ROOT=$ROOT/thirdparty export LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/amd64/server:${BUILD_LATEST_DIR}/output/lib:${THIRDPARTY_ROOT}/output/lib:${LD_LIBRARY_PATH} # Disable AddressSanitizerOneDefinitionRuleViolation, see https://github.com/google/sanitizers/issues/1017 for details. -export ASAN_OPTIONS=detect_odr_violation=0 +export ASAN_OPTIONS=detect_odr_violation=0:abort_on_error=1:disable_coredump=0:unmap_shadow_on_exit=1 # See https://github.com/gperftools/gperftools/wiki/gperftools'-stacktrace-capturing-methods-and-their-issues. # Now we choose libgcc, because of https://github.com/apache/incubator-pegasus/issues/1685. export TCMALLOC_STACKTRACE_METHOD=libgcc # Can be generic_fp, generic_fp_unsafe, libunwind or libgcc diff --git a/src/runtime/rpc/rpc_host_port.cpp b/src/runtime/rpc/rpc_host_port.cpp index 7abc76d365..9b33f026be 100644 --- a/src/runtime/rpc/rpc_host_port.cpp +++ b/src/runtime/rpc/rpc_host_port.cpp @@ -31,6 +31,7 @@ #include "runtime/rpc/rpc_host_port.h" #include "utils/error_code.h" #include "utils/fixed_size_buffer_pool.h" +#include "utils/ports.h" #include "utils/safe_strerror_posix.h" #include "utils/string_conv.h" #include "utils/utils.h" @@ -72,27 +73,29 @@ host_port::host_port(std::string host, uint16_t port) bool host_port::from_string(const std::string s) { - std::string ip_port = s; - auto pos = ip_port.find_last_of(':'); + auto pos = s.find_last_of(':'); if (pos == std::string::npos) { return false; } - std::string host = ip_port.substr(0, pos); - std::string port = ip_port.substr(pos + 1); + _host = s.substr(0, pos); + std::string port = s.substr(pos + 1); - // check port - unsigned int port_num; - if (!internal::buf2unsigned(port, port_num) || port_num > UINT16_MAX) { + if (!internal::buf2unsigned(port, _port) || _port > UINT16_MAX) { return false; } - if (rpc_address::ipv4_from_host(host.c_str()) == 0) { + struct addrinfo hints; + memset(&hints, 0, sizeof(hints)); + hints.ai_family = AF_INET; + hints.ai_socktype = SOCK_STREAM; + AddrInfo result; + auto err_code = GetAddrInfo(_host, hints, &result); + + if (dsn_unlikely(!err_code.ok())) { return false; } _type = HOST_TYPE_IPV4; - _host = host; - _port = port_num; return true; } diff --git a/src/test/function_test/backup_restore/test_backup_and_restore.cpp b/src/test/function_test/backup_restore/test_backup_and_restore.cpp index 957f4b14b8..2237c116b4 100644 --- a/src/test/function_test/backup_restore/test_backup_and_restore.cpp +++ b/src/test/function_test/backup_restore/test_backup_and_restore.cpp @@ -29,7 +29,6 @@ #include "gtest/gtest.h" #include "include/pegasus/client.h" #include "include/pegasus/error.h" -#include "runtime/rpc/rpc_address.h" #include "runtime/rpc/rpc_host_port.h" #include "test/function_test/utils/test_util.h" #include "utils/error_code.h" diff --git a/src/test/function_test/config.ini b/src/test/function_test/config.ini index 78689749be..34fb4a9383 100644 --- a/src/test/function_test/config.ini +++ b/src/test/function_test/config.ini @@ -75,8 +75,6 @@ rpc_timeout_milliseconds = 5000 lb_interval_ms = 3000 [pegasus.clusters] -; TODO(yingchun): leave only 1 cluster config -mycluster = @LOCAL_HOSTNAME@:34601,@LOCAL_HOSTNAME@:34602,@LOCAL_HOSTNAME@:34603 onebox = @LOCAL_HOSTNAME@:34601,@LOCAL_HOSTNAME@:34602,@LOCAL_HOSTNAME@:34603 single_master_cluster = @LOCAL_HOSTNAME@:34601 diff --git a/src/test/function_test/utils/test_util.cpp b/src/test/function_test/utils/test_util.cpp index 634ae91210..73d4c9e021 100644 --- a/src/test/function_test/utils/test_util.cpp +++ b/src/test/function_test/utils/test_util.cpp @@ -73,8 +73,8 @@ void test_util::SetUp() ddl_client_ = std::make_shared(meta_list_); ASSERT_TRUE(ddl_client_ != nullptr); - ddl_client_->set_meta_servers_leader(); ddl_client_->set_max_wait_app_ready_secs(120); + ddl_client_->set_meta_servers_leader(); dsn::error_code ret = ddl_client_->create_app(app_name_, "pegasus", partition_count_, 3, create_envs_, false); diff --git a/src/test/function_test/utils/test_util.h b/src/test/function_test/utils/test_util.h index e261048548..120c03786a 100644 --- a/src/test/function_test/utils/test_util.h +++ b/src/test/function_test/utils/test_util.h @@ -49,7 +49,7 @@ class test_util : public ::testing::Test { public: test_util(std::map create_envs = {}, - std::string cluster_name = "mycluster"); + std::string cluster_name = "onebox"); virtual ~test_util(); static void SetUpTestCase();