491874745 opened a new issue, #51680: URL: https://github.com/apache/doris/issues/51680
### Search before asking - [x] I had searched in the [issues](https://github.com/apache/doris/issues?q=is%3Aissue) and found no similar issues. ### Version Doris3.0.5 Separate storage and computation deployment(存算分离部署) ### What's Wrong? 1. Server ``` 192.168.1.36 DorisFE Master 192.168.1.37 DorisFE 192.168.1.38 DorisFE ``` 2. How to start ``` 192.168.1.36 FE Master: sh fe/bin/start_fe.sh --daemon 192.168.1.37 FE Both approaches have been tried: sh fe/bin/start_fe.sh --helper 192.168.1.36:9011 --daemon sh fe/bin/start_fe.sh --daemon ``` 3. Try adding FE. ``` 192.168.1.36 ADD 192.168.1.37 DorisFE ALTER SYSTEM ADD FOLLOWER "192.168.1.37:9011"; ``` 4. 192.168.1.36 FE Master Error Log ``` 2025-06-11 15:46:45,908 WARN (qtp1189050702-240|200) [MetaService.isFromValidFe():71] request is not from valid FE. client: 192.168.1.37, 9011 2025-06-11 15:46:45,909 WARN (qtp1189050702-240|200) [RestApiExceptionHandler.unexpectedExceptionHandler():61] unexpected exception org.apache.doris.httpv2.meta.InvalidClientException: invalid client host: 192.168.1.37 at org.apache.doris.httpv2.meta.MetaService.checkFromValidFe(MetaService.java:81) ~[doris-fe.jar:1.2-SNAPSHOT] at org.apache.doris.httpv2.meta.MetaService.role(MetaService.java:201) ~[doris-fe.jar:1.2-SNAPSHOT] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.39.jar:5.3.39] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.39.jar:5.3.39] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.39.jar:5.3.39] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:903) ~[spring-webmvc-5.3.39.jar:5.3.39] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:809) ~[spring-webmvc-5.3.39.jar:5.3.39] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.39.jar:5.3.39] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072) ~[spring-webmvc-5.3.39.jar:5.3.39] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965) ~[spring-webmvc-5.3.39.jar:5.3.39] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.39.jar:5.3.39] at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) ~[spring-webmvc-5.3.39.jar:5.3.39] at javax.servlet.http.HttpServlet.service(HttpServlet.java:687) ~[javax.servlet-api-3.1.0.jar:3.1.0] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.39.jar:5.3.39] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) ~[javax.servlet-api-3.1.0.jar:3.1.0] at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799) ~[jetty-servlet-9.4.57.v20241219.jar:9.4.57.v20241219] at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1656) ~[jetty-servlet-9.4.57.v20241219.jar:9.4.57.v20241219] at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:292) ~[websocket-server-9.4.57.v20241219.jar:9.4.57.v20241219] at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) ~[jetty-servlet-9.4.57.v20241219.jar:9.4.57.v20241219] at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626) ~[jetty-servlet-9.4.57.v20241219.jar:9.4.57.v20241219] at org.apache.doris.httpv2.interceptor.ServletTraceIterceptor.doFilter(ServletTraceIterceptor.java:55) ~[doris-fe.jar:1.2-SNAPSHOT] at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:201) ~[jetty-servlet-9.4.57.v20241219.jar:9.4.57.v20241219] at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626) ~[jetty-servlet-9.4.57.v20241219.jar:9.4.57.v20241219] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.39.jar:5.3.39] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.39.jar:5.3.39] at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) ~[jetty-servlet-9.4.57.v20241219.jar:9.4.57.v20241219] at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626) ~[jetty-servlet-9.4.57.v20241219.jar:9.4.57.v20241219] at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.39.jar:5.3.39] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.39.jar:5.3.39] at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) ~[jetty-servlet-9.4.57.v20241219.jar:9.4.57.v20241219] at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626) ~[jetty-servlet-9.4.57.v20241219.jar:9.4.57.v20241219] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.39.jar:5.3.39] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.39.jar:5.3.39] at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) ~[jetty-servlet-9.4.57.v20241219.jar:9.4.57.v20241219] at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626) ~[jetty-servlet-9.4.57.v20241219.jar:9.4.57.v20241219] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:552) ~[jetty-servlet-9.4.57.v20241219.jar:9.4.57.v20241219] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) ~[jetty-server-9.4.57.v20241219.jar:9.4.57.v20241219] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:600) ~[jetty-security-9.4.57.v20241219.jar:9.4.57.v20241219] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[jetty-server-9.4.57.v20241219.jar:9.4.57.v20241219] at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) ~[jetty-server-9.4.57.v20241219.jar:9.4.57.v20241219] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624) ~[jetty-server-9.4.57.v20241219.jar:9.4.57.v20241219] at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[jetty-server-9.4.57.v20241219.jar:9.4.57.v20241219] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440) ~[jetty-server-9.4.57.v20241219.jar:9.4.57.v20241219] at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) ~[jetty-server-9.4.57.v20241219.jar:9.4.57.v20241219] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:505) ~[jetty-servlet-9.4.57.v20241219.jar:9.4.57.v20241219] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594) ~[jetty-server-9.4.57.v20241219.jar:9.4.57.v20241219] at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) ~[jetty-server-9.4.57.v20241219.jar:9.4.57.v20241219] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355) ~[jetty-server-9.4.57.v20241219.jar:9.4.57.v20241219] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) ~[jetty-server-9.4.57.v20241219.jar:9.4.57.v20241219] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[jetty-server-9.4.57.v20241219.jar:9.4.57.v20241219] at org.eclipse.jetty.server.Server.handle(Server.java:516) ~[jetty-server-9.4.57.v20241219.jar:9.4.57.v20241219] at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487) ~[jetty-server-9.4.57.v20241219.jar:9.4.57.v20241219] at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732) ~[jetty-server-9.4.57.v20241219.jar:9.4.57.v20241219] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479) ~[jetty-server-9.4.57.v20241219.jar:9.4.57.v20241219] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277) ~[jetty-server-9.4.57.v20241219.jar:9.4.57.v20241219] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) ~[jetty-io-9.4.57.v20241219.jar:9.4.57.v20241219] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) ~[jetty-io-9.4.57.v20241219.jar:9.4.57.v20241219] at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) ~[jetty-io-9.4.57.v20241219.jar:9.4.57.v20241219] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883) ~[jetty-util-9.4.57.v20241219.jar:9.4.57.v20241219] at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034) ~[jetty-util-9.4.57.v20241219.jar:9.4.57.v20241219] at java.lang.Thread.run(Thread.java:842) ~[?:?] 2025-06-11 14:43:08,947 WARN (heartbeat mgr|200) [HeartbeatMgr.runAfterCatalogReady():158] get bad heartbeat response: type: FRONTEND, status: BAD, msg: java.net.ConnectException: Connection refused, name: 192.168.1.37_9011_1749623666000, version: null, queryPort: 0, rpcPort: 0, arrowFlightSqlPort: 0, replayedJournalId: 0, festartTime: 1749623468641 ``` 5. 192.168.1.36 FE Config files ``` deploy_mode = cloud cluster_id = 657162115 meta_service_endpoint = 192.168.1.36:5000,192.168.1.37:5000,192.168.1.38:5000 JAVA_HOME=/data/doris3/java/ CUR_DATE=`date +%Y%m%d-%H%M%S` # Log dir LOG_DIR = ${DORIS_HOME}/log # For jdk 8 JAVA_OPTS="-Dfile.encoding=UTF-8 -Djavax.security.auth.useSubjectCredsOnly=false -Xss4m -Xmx8192m -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintClassHistogramAfterFullGC -Xloggc:$LOG_DIR/log/fe.gc.log.$CUR_DATE -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=50M -Dlog4j2.formatMsgNoLookups=true" # For jdk 17, this JAVA_OPTS will be used as default JVM options JAVA_OPTS_FOR_JDK_17="-Dfile.encoding=UTF-8 -Djavax.security.auth.useSubjectCredsOnly=false -Xmx8192m -Xms8192m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$LOG_DIR -Xlog:gc*,classhisto*=trace:$LOG_DIR/fe.gc.log.$CUR_DATE:time,uptime:filecount=10,filesize=50M --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens java.base/jdk.internal.ref=ALL-UNNAMED --add-opens java.base/sun.nio.ch=ALL-UNNAMED" # Set your own JAVA_HOME # JAVA_HOME=/path/to/jdk/ ## ## the lowercase properties are read by main program. ## # store metadata, must be created before start FE. # Default value is ${DORIS_HOME}/doris-meta # meta_dir = ${DORIS_HOME}/doris-meta # Default dirs to put jdbc drivers,default value is ${DORIS_HOME}/jdbc_drivers # jdbc_drivers_dir = ${DORIS_HOME}/jdbc_drivers http_port = 8031 rpc_port = 9022 query_port = 9031 edit_log_port = 9011 arrow_flight_sql_port = -1 # Choose one if there are more than one ip except loopback address. # Note that there should at most one ip match this list. # If no ip match this rule, will choose one randomly. # use CIDR format, e.g. 10.10.10.0/24 or IP format, e.g. 10.10.10.1 # Default value is empty. # priority_networks = 10.10.10.0/24;192.168.0.0/16 priority_networks = 192.168.1.36/22 sys_log_level = INFO sys_log_mode = ASYNC ``` 6. 192.168.1.37 FE Config files ``` deploy_mode = cloud cluster_id = 657162115 meta_service_endpoint = 192.168.1.36:5000,192.168.1.37:5000,192.168.1.38:5000 JAVA_HOME=/data/doris3/java/ CUR_DATE=`date +%Y%m%d-%H%M%S` # Log dir LOG_DIR = ${DORIS_HOME}/log # For jdk 8 JAVA_OPTS="-Dfile.encoding=UTF-8 -Djavax.security.auth.useSubjectCredsOnly=false -Xss4m -Xmx8192m -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintClassHistogramAfterFullGC -Xloggc:$LOG_DIR/log/fe.gc.log.$CUR_DATE -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=50M -Dlog4j2.formatMsgNoLookups=true" # For jdk 17, this JAVA_OPTS will be used as default JVM options JAVA_OPTS_FOR_JDK_17="-Dfile.encoding=UTF-8 -Djavax.security.auth.useSubjectCredsOnly=false -Xmx8192m -Xms8192m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$LOG_DIR -Xlog:gc*,classhisto*=trace:$LOG_DIR/fe.gc.log.$CUR_DATE:time,uptime:filecount=10,filesize=50M --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens java.base/jdk.internal.ref=ALL-UNNAMED --add-opens java.base/sun.nio.ch=ALL-UNNAMED" # Set your own JAVA_HOME # JAVA_HOME=/path/to/jdk/ # store metadata, must be created before start FE. # Default value is ${DORIS_HOME}/doris-meta # meta_dir = ${DORIS_HOME}/doris-meta # Default dirs to put jdbc drivers,default value is ${DORIS_HOME}/jdbc_drivers # jdbc_drivers_dir = ${DORIS_HOME}/jdbc_drivers http_port = 8031 rpc_port = 9021 query_port = 9031 edit_log_port = 9011 arrow_flight_sql_port = -1 # Choose one if there are more than one ip except loopback address. # Note that there should at most one ip match this list. # If no ip match this rule, will choose one randomly. # use CIDR format, e.g. 10.10.10.0/24 or IP format, e.g. 10.10.10.1 # Default value is empty. # priority_networks = 10.10.10.0/24;192.168.0.0/16 priority_networks = 192.168.0.0/22 sys_log_level = INFO sys_log_mode = ASYNC ``` 7. 查看FE状态 ``` mysql> show frontends\G; *************************** 1. row *************************** Name: fe_19ea2c85_a24d_4fbe_8380_1ec8be97e1e6 Host: 192.168.1.36 EditLogPort: 9011 HttpPort: 8031 QueryPort: 9031 RpcPort: 9022 ArrowFlightSqlPort: -1 Role: FOLLOWER IsMaster: true ClusterId: 657162114 Join: true Alive: true ReplayedJournalId: 91 LastStartTime: 2025-06-11 14:31:08 LastHeartbeat: 2025-06-11 14:37:48 IsHelper: true ErrMsg: Version: doris-3.0.5-rc01-e277cfb83f CurrentConnected: Yes *************************** 2. row *************************** Name: 192.168.1.37_9011_1749623666000 Host: 192.168.1.37 EditLogPort: 9011 HttpPort: 8031 QueryPort: 0 RpcPort: 0 ArrowFlightSqlPort: 0 Role: FOLLOWER IsMaster: false ClusterId: 657162114 Join: true Alive: false ReplayedJournalId: 0 LastStartTime: NULL LastHeartbeat: NULL IsHelper: true ErrMsg: java.net.ConnectException: Connection refused Version: NULL CurrentConnected: No 3 rows in set (0.01 sec) ERROR: No query specified ``` ### What You Expected? I don't know why to prompt me that request is not from valid Fe. Client: 192.168.1.37,9011, invalid client host: 192.168.1.37, Connection refused, name: 192.168.1.37 Please help me thank you! ### How to Reproduce? _No response_ ### Anything Else? _No response_ ### Are you willing to submit PR? - [x] Yes I am willing to submit a PR! ### Code of Conduct - [x] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
