dianjifzm opened a new issue, #13743: URL: https://github.com/apache/dubbo/issues/13743
<!-- If you need to report a security issue please visit https://github.com/apache/dubbo/security/policy --> ### Environment * Dubbo version: 3.2.11 * Operating System version: Apple M2芯片 macOS 14.2.1 * Java version: OpenJDK 64-Bit Server VM (build 21.0.2+13-58, mixed mode, sharing) ### 复现方式1 ``` public static void main(String[] args) throws Exception { NetUtils.getLocalHost(); long l = System.currentTimeMillis(); NetUtils.getLocalHost(); System.out.println("use " + (System.currentTimeMillis() - l) + "ms"); System.out.println(); } ``` 多数情况下,第二次调用NetUtils.getLocalHost() 会使用极短时间,因为HOST_ADDRESS已经缓存了上次调用的结果 但是在Apple M2芯片 macOS 14.2.1 环境下,非root用户执行 InetAddress.isReachable 会一直返回false,这导致了HOST_ADDRESS赋值失败。 ### 复现方式2 因为几乎每行日志都使用了NetUtils.getLocalHost(),这最终导致了dubbo整体启动时间的大幅度上涨 下面日志是 root用户和普通用户调用FrameworkModel.defaultModel() 的区别(注意观察日志的时间戳) Java代码 ``` import org.apache.dubbo.rpc.model.FrameworkModel; public class FrameworkModelDemo { public static void main(String[] args) throws Exception { long l = System.currentTimeMillis(); FrameworkModel.defaultModel(); System.out.println("use " + (System.currentTimeMillis() - l) + "ms"); } } ``` 普通用户 ``` java -cp .:build:./target/dependency/* FrameworkModelDemo 2024-02-05 21:19:34.661 INFO org.apache.dubbo.rpc.model.FrameworkModel [<init>:86] [main] - [DUBBO] Dubbo Framework[1] is created, dubbo version: 3.2.11, current host: 127.0.0.1 2024-02-05 21:19:35.098 INFO org.apache.dubbo.common.resource.GlobalResourcesRepository [getExecutorService:96] [main] - [DUBBO] Creating global shared handler ..., dubbo version: 3.2.11, current host: 127.0.0.1 2024-02-05 21:19:35.569 INFO org.apache.dubbo.rpc.model.ApplicationModel [<init>:107] [main] - [DUBBO] Dubbo Application[1.0](unknown) is created, dubbo version: 3.2.11, current host: 127.0.0.1 2024-02-05 21:19:35.980 INFO org.apache.dubbo.rpc.model.ScopeModel [<init>:63] [main] - [DUBBO] Dubbo Module[1.0.0] is created, dubbo version: 3.2.11, current host: 127.0.0.1 2024-02-05 21:19:36.416 INFO org.apache.dubbo.config.context.AbstractConfigManager [initialize:143] [main] - [DUBBO] Config settings: {dubbo.config.mode=STRICT, dubbo.config.ignore-duplicated-interface=false}, dubbo version: 3.2.11, current host: 127.0.0.1 2024-02-05 21:19:36.828 INFO org.apache.dubbo.config.context.AbstractConfigManager [initialize:143] [main] - [DUBBO] Config settings: {dubbo.config.mode=STRICT, dubbo.config.ignore-duplicated-interface=false}, dubbo version: 3.2.11, current host: 127.0.0.1 2024-02-05 21:19:37.248 INFO org.apache.dubbo.common.utils.SerializeSecurityManager [setCheckSerializable:107] [main] - [DUBBO] Serialize check serializable: true, dubbo version: 3.2.11, current host: 127.0.0.1 2024-02-05 21:19:37.660 INFO org.apache.dubbo.common.utils.SerializeSecurityConfigurator [loadAllow:135] [main] - [DUBBO] Read serialize allow list from jar:file:/Users/fzming/workspace/demos/alibaba.com/dubbo3/performance_init_test/target/dependency/dubbo-3.2.11.jar!/security/serialize.allowlist, dubbo version: 3.2.11, current host: 127.0.0.1 2024-02-05 21:19:38.118 INFO org.apache.dubbo.common.utils.SerializeSecurityConfigurator [loadBlocked:159] [main] - [DUBBO] Read serialize blocked list from jar:file:/Users/fzming/workspace/demos/alibaba.com/dubbo3/performance_init_test/target/dependency/dubbo-3.2.11.jar!/security/serialize.blockedlist, dubbo version: 3.2.11, current host: 127.0.0.1 use 4077ms ``` root用户 ``` sudo java -cp .:build:./target/dependency/* FrameworkModelDemo 2024-02-05 21:20:36.077 INFO org.apache.dubbo.rpc.model.FrameworkModel [<init>:86] [main] - [DUBBO] Dubbo Framework[1] is created, dubbo version: 3.2.11, current host: 100.85.129.227 2024-02-05 21:20:36.087 INFO org.apache.dubbo.common.resource.GlobalResourcesRepository [getExecutorService:96] [main] - [DUBBO] Creating global shared handler ..., dubbo version: 3.2.11, current host: 100.85.129.227 2024-02-05 21:20:36.127 INFO org.apache.dubbo.rpc.model.ApplicationModel [<init>:107] [main] - [DUBBO] Dubbo Application[1.0](unknown) is created, dubbo version: 3.2.11, current host: 100.85.129.227 2024-02-05 21:20:36.128 INFO org.apache.dubbo.rpc.model.ScopeModel [<init>:63] [main] - [DUBBO] Dubbo Module[1.0.0] is created, dubbo version: 3.2.11, current host: 100.85.129.227 2024-02-05 21:20:36.139 INFO org.apache.dubbo.config.context.AbstractConfigManager [initialize:143] [main] - [DUBBO] Config settings: {dubbo.config.mode=STRICT, dubbo.config.ignore-duplicated-interface=false}, dubbo version: 3.2.11, current host: 100.85.129.227 2024-02-05 21:20:36.139 INFO org.apache.dubbo.config.context.AbstractConfigManager [initialize:143] [main] - [DUBBO] Config settings: {dubbo.config.mode=STRICT, dubbo.config.ignore-duplicated-interface=false}, dubbo version: 3.2.11, current host: 100.85.129.227 2024-02-05 21:20:36.144 INFO org.apache.dubbo.common.utils.SerializeSecurityManager [setCheckSerializable:107] [main] - [DUBBO] Serialize check serializable: true, dubbo version: 3.2.11, current host: 100.85.129.227 2024-02-05 21:20:36.144 INFO org.apache.dubbo.common.utils.SerializeSecurityConfigurator [loadAllow:135] [main] - [DUBBO] Read serialize allow list from jar:file:/Users/fzming/workspace/demos/alibaba.com/dubbo3/performance_init_test/target/dependency/dubbo-3.2.11.jar!/security/serialize.allowlist, dubbo version: 3.2.11, current host: 100.85.129.227 2024-02-05 21:20:36.166 INFO org.apache.dubbo.common.utils.SerializeSecurityConfigurator [loadBlocked:159] [main] - [DUBBO] Read serialize blocked list from jar:file:/Users/fzming/workspace/demos/alibaba.com/dubbo3/performance_init_test/target/dependency/dubbo-3.2.11.jar!/security/serialize.blockedlist, dubbo version: 3.2.11, current host: 100.85.129.227 use 284ms ``` -- 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]
