This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new ba3a0922eb [fix](ipv6)Support IPV6 (#22219)
ba3a0922eb is described below
commit ba3a0922ebb605f345dcf4dc35608d0ef0e64d14
Author: zhangdong <[email protected]>
AuthorDate: Wed Jul 26 08:40:32 2023 +0800
[fix](ipv6)Support IPV6 (#22219)
fe:Remove restrictions from IPv4
be: thrift server Specify binding address
be: Restore changed code of “be/src/olap/task/engine_clone_task.cpp”
---
be/src/olap/task/engine_clone_task.cpp | 4 ++--
be/src/service/backend_options.cpp | 7 +++++++
be/src/service/backend_options.h | 1 +
be/src/util/thrift_server.cpp | 7 +++++--
.../org/apache/doris/service/FrontendOptions.java | 19 ++++++++-----------
5 files changed, 23 insertions(+), 15 deletions(-)
diff --git a/be/src/olap/task/engine_clone_task.cpp
b/be/src/olap/task/engine_clone_task.cpp
index 5e9f02755c..1f1c04ec70 100644
--- a/be/src/olap/task/engine_clone_task.cpp
+++ b/be/src/olap/task/engine_clone_task.cpp
@@ -302,11 +302,11 @@ Status
EngineCloneTask::_make_and_download_snapshots(DataDir& data_dir,
// concat tablet_id and schema hash here.
std::stringstream ss;
if (snapshot_path->back() == '/') {
- ss << "http://" << src.host << ":" << src.http_port <<
HTTP_REQUEST_PREFIX
+ ss << "http://" << get_host_port(src.host, src.http_port) <<
HTTP_REQUEST_PREFIX
<< HTTP_REQUEST_TOKEN_PARAM << token <<
HTTP_REQUEST_FILE_PARAM << *snapshot_path
<< _clone_req.tablet_id << "/" << _clone_req.schema_hash <<
"/";
} else {
- ss << "http://" << src.host << ":" << src.http_port <<
HTTP_REQUEST_PREFIX
+ ss << "http://" << get_host_port(src.host, src.http_port) <<
HTTP_REQUEST_PREFIX
<< HTTP_REQUEST_TOKEN_PARAM << token <<
HTTP_REQUEST_FILE_PARAM << *snapshot_path
<< "/" << _clone_req.tablet_id << "/" <<
_clone_req.schema_hash << "/";
}
diff --git a/be/src/service/backend_options.cpp
b/be/src/service/backend_options.cpp
index 45e34b5af2..20f4e68c76 100644
--- a/be/src/service/backend_options.cpp
+++ b/be/src/service/backend_options.cpp
@@ -111,6 +111,13 @@ const char* BackendOptions::get_service_bind_address() {
return _service_bind_address;
}
+const char* BackendOptions::get_service_bind_address_without_bracket() {
+ if (_bind_ipv6) {
+ return "::0";
+ }
+ return _service_bind_address;
+}
+
bool BackendOptions::analyze_priority_cidrs() {
if (config::priority_networks == "") {
return true;
diff --git a/be/src/service/backend_options.h b/be/src/service/backend_options.h
index 3e52c69e40..3aff934036 100644
--- a/be/src/service/backend_options.h
+++ b/be/src/service/backend_options.h
@@ -36,6 +36,7 @@ public:
static void set_localhost(const std::string& host);
static bool is_bind_ipv6();
static const char* get_service_bind_address();
+ static const char* get_service_bind_address_without_bracket();
private:
static bool analyze_priority_cidrs();
diff --git a/be/src/util/thrift_server.cpp b/be/src/util/thrift_server.cpp
index 335a44a367..88e71d16c7 100644
--- a/be/src/util/thrift_server.cpp
+++ b/be/src/util/thrift_server.cpp
@@ -38,6 +38,7 @@
#include <sstream>
#include <thread>
+#include "service/backend_options.h"
#include "util/doris_metrics.h"
namespace apache {
@@ -332,7 +333,8 @@ Status ThriftServer::start() {
break;
case THREAD_POOL:
- fe_server_transport.reset(new
apache::thrift::transport::TServerSocket(_port));
+ fe_server_transport.reset(new apache::thrift::transport::TServerSocket(
+ BackendOptions::get_service_bind_address_without_bracket(),
_port));
if (transport_factory.get() == nullptr) {
transport_factory.reset(new
apache::thrift::transport::TBufferedTransportFactory());
@@ -343,7 +345,8 @@ Status ThriftServer::start() {
break;
case THREADED:
- server_socket = new apache::thrift::transport::TServerSocket(_port);
+ server_socket = new apache::thrift::transport::TServerSocket(
+ BackendOptions::get_service_bind_address_without_bracket(),
_port);
// server_socket->setAcceptTimeout(500);
fe_server_transport.reset(server_socket);
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/service/FrontendOptions.java
b/fe/fe-core/src/main/java/org/apache/doris/service/FrontendOptions.java
index ac715a707f..bad90822f6 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/service/FrontendOptions.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/service/FrontendOptions.java
@@ -27,7 +27,6 @@ import com.google.common.net.InetAddresses;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
-import java.net.Inet4Address;
import java.net.Inet6Address;
import java.net.InetAddress;
import java.net.UnknownHostException;
@@ -67,19 +66,17 @@ public class FrontendOptions {
boolean hasMatchedIp = false;
for (InetAddress addr : hosts) {
LOG.debug("check ip address: {}", addr);
- if (addr instanceof Inet4Address) {
- if (addr.isLoopbackAddress()) {
- loopBack = addr;
- } else if (!priorityCidrs.isEmpty()) {
- if (isInPriorNetwork(addr.getHostAddress())) {
- localAddr = addr;
- hasMatchedIp = true;
- break;
- }
- } else {
+ if (addr.isLoopbackAddress()) {
+ loopBack = addr;
+ } else if (!priorityCidrs.isEmpty()) {
+ if (isInPriorNetwork(addr.getHostAddress())) {
localAddr = addr;
+ hasMatchedIp = true;
break;
}
+ } else {
+ localAddr = addr;
+ break;
}
}
//if all ips not match the priority_networks then print the warning log
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]