This is an automated email from the ASF dual-hosted git repository.

yiguolei pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-2.1 by this push:
     new a9939c09c15 branch-2.1: [improve](thrift) Config 
thrift_max_message_size for FE SIMPLE and TH… #49678 (#49725)
a9939c09c15 is described below

commit a9939c09c1584254a6d1bf887df45b21037aee9f
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Tue Apr 1 17:03:48 2025 +0800

    branch-2.1: [improve](thrift) Config thrift_max_message_size for FE SIMPLE 
and TH… #49678 (#49725)
    
    Cherry-picked from #49678
    
    Co-authored-by: walter <maoch...@selectdb.com>
---
 .../java/org/apache/doris/common/ThriftServer.java | 51 +++++++++++++++++++++-
 1 file changed, 49 insertions(+), 2 deletions(-)

diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/ThriftServer.java 
b/fe/fe-core/src/main/java/org/apache/doris/common/ThriftServer.java
index f18dbb378a1..cdc4bba71d3 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/common/ThriftServer.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/common/ThriftServer.java
@@ -31,6 +31,7 @@ import org.apache.thrift.server.TSimpleServer;
 import org.apache.thrift.server.TThreadPoolServer;
 import org.apache.thrift.server.TThreadedSelectorServer;
 import org.apache.thrift.transport.TNonblockingServerSocket;
+import org.apache.thrift.transport.TNonblockingSocket;
 import org.apache.thrift.transport.TServerSocket;
 import org.apache.thrift.transport.TSocket;
 import org.apache.thrift.transport.TTransportException;
@@ -95,14 +96,42 @@ public class ThriftServer {
     }
 
     private void createSimpleServer() throws TTransportException {
-        TServer.Args args = new TServer.Args(new 
TServerSocket(port)).protocolFactory(
+        TServerSocket.ServerSocketTransportArgs socketTransportArgs;
+
+        if (FrontendOptions.isBindIPV6()) {
+            socketTransportArgs = new TServerSocket.ServerSocketTransportArgs()
+                    .bindAddr(new InetSocketAddress("::0", port))
+                    .clientTimeout(Config.thrift_client_timeout_ms)
+                    .backlog(Config.thrift_backlog_num);
+        } else {
+            socketTransportArgs = new TServerSocket.ServerSocketTransportArgs()
+                    .bindAddr(new InetSocketAddress("0.0.0.0", port))
+                    .clientTimeout(Config.thrift_client_timeout_ms)
+                    .backlog(Config.thrift_backlog_num);
+        }
+
+        TServer.Args args = new TServer.Args(new 
ImprovedTServerSocket(socketTransportArgs)).protocolFactory(
                 new TBinaryProtocol.Factory()).processor(processor);
         server = new TSimpleServer(args);
     }
 
     private void createThreadedServer() throws TTransportException {
+        TNonblockingServerSocket.NonblockingAbstractServerSocketArgs 
socketTransportArgs;
+
+        if (FrontendOptions.isBindIPV6()) {
+            socketTransportArgs = new 
TNonblockingServerSocket.NonblockingAbstractServerSocketArgs()
+                    .bindAddr(new InetSocketAddress("::0", port))
+                    .clientTimeout(Config.thrift_client_timeout_ms)
+                    .backlog(Config.thrift_backlog_num);
+        } else {
+            socketTransportArgs = new 
TNonblockingServerSocket.NonblockingAbstractServerSocketArgs()
+                    .bindAddr(new InetSocketAddress("0.0.0.0", port))
+                    .clientTimeout(Config.thrift_client_timeout_ms)
+                    .backlog(Config.thrift_backlog_num);
+        }
+
         TThreadedSelectorServer.Args args = new TThreadedSelectorServer.Args(
-                new TNonblockingServerSocket(port, 
Config.thrift_client_timeout_ms))
+                new ImprovedTNonblockingServerSocket(socketTransportArgs))
                 .protocolFactory(new TBinaryProtocol.Factory())
                 .processor(processor);
         ThreadPoolExecutor threadPoolExecutor = 
ThreadPoolManager.newDaemonCacheThreadPool(
@@ -214,4 +243,22 @@ public class ThriftServer {
             return socket;
         }
     }
+
+    static class ImprovedTNonblockingServerSocket extends 
TNonblockingServerSocket {
+        public 
ImprovedTNonblockingServerSocket(NonblockingAbstractServerSocketArgs args) 
throws TTransportException {
+            super(args);
+        }
+
+        @Override
+        public TNonblockingSocket accept() throws TTransportException {
+            TNonblockingSocket socket = super.accept();
+
+            TConfiguration cfg = socket.getConfiguration();
+            cfg.setMaxMessageSize(Config.thrift_max_message_size);
+            cfg.setMaxFrameSize(Config.thrift_max_frame_size);
+
+            socket.updateKnownMessageSize(0); // Since we update the 
configuration, reset consumed message size.
+            return socket;
+        }
+    }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to