apache / incubator-seata

:fire: Seata is an easy-to-use, high-performance, open source distributed transaction solution.
https://seata.apache.org/
Apache License 2.0
25.25k stars 8.77k forks source link

Startup failed after changing the communication method to unix_domain_socket #6577

Closed wu979 closed 4 months ago

wu979 commented 4 months ago

Ⅰ. Issue Description

When I modified the transport.type=unix_domain_socket of the seata server and tried to start the program, the server started abnormally and threw a Socket exception.

Ⅱ. Describe what happened

java.lang.RuntimeException: Server start failed at io.seata.core.rpc.netty.NettyServerBootstrap.start(NettyServerBootstrap.java:180) at io.seata.core.rpc.netty.AbstractNettyRemotingServer.init(AbstractNettyRemotingServer.java:56) at io.seata.core.rpc.netty.NettyRemotingServer.init(NettyRemotingServer.java:60) at io.seata.server.Server.start(Server.java:100) at io.seata.server.ServerRunner.run(ServerRunner.java:60) at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:765) at org.springframework.boot.SpringApplication.lambda$callRunners$2(SpringApplication.java:749) at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) at java.util.stream.SortedOps$SizedRefSortingSink.end(SortedOps.java:357) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:483) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:485) at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:744) at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1300) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1289) at io.seata.server.ServerApplication.main(ServerApplication.java:30) Caused by: io.netty.channel.ChannelException: Unable to create Channel from class class io.netty.channel.epoll.EpollServerDomainSocketChannel at io.netty.channel.ReflectiveChannelFactory.newChannel(ReflectiveChannelFactory.java:46) at io.netty.bootstrap.AbstractBootstrap.initAndRegister(AbstractBootstrap.java:310) at io.netty.bootstrap.AbstractBootstrap.doBind(AbstractBootstrap.java:272) at io.netty.bootstrap.AbstractBootstrap.bind(AbstractBootstrap.java:268) at io.netty.bootstrap.AbstractBootstrap.bind(AbstractBootstrap.java:246) at io.seata.core.rpc.netty.NettyServerBootstrap.start(NettyServerBootstrap.java:170) ... 19 common frames omitted Caused by: java.lang.reflect.InvocationTargetException: null at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at io.netty.channel.ReflectiveChannelFactory.newChannel(ReflectiveChannelFactory.java:44) ... 24 common frames omitted Caused by: java.lang.UnsatisfiedLinkError: io.netty.channel.unix.Socket.newSocketDomainFd()I at io.netty.channel.unix.Socket.newSocketDomainFd(Native Method) at io.netty.channel.unix.Socket.newSocketDomain0(Socket.java:620) at io.netty.channel.epoll.LinuxSocket.newSocketDomain(LinuxSocket.java:413) at io.netty.channel.epoll.EpollServerDomainSocketChannel.(EpollServerDomainSocketChannel.java:39) ... 29 common frames omitted <==

15:28:26.258 INFO --- [ngApplicationShutdownHook] [rpc.netty.NettyServerBootstrap] [ shutdown] [] : Shutting server down, the listen port: 8091 15:28:26.402 INFO --- [ngApplicationShutdownHook] [.jraft.util.JRaftServiceLoader] [ newProvider] [] : SPI service [com.alipay.sofa.jraft.rpc.RaftRpcFactory - com.alipay.sofa.jraft.rpc.impl.BoltRaftRpcFactory] loading. Sofa-Middleware-Log SLF4J : Actual binding is of type [ com.alipay.remoting Logback ] 15:28:26.525 INFO --- [ngApplicationShutdownHook] [com.alipay.sofa.common.log ] [ report] [] : Sofa-Middleware-Log SLF4J : Actual binding is of type [ com.alipay.remoting Logback ]

Ⅲ. Describe what you expected to happen

When the communication method is unix_domain_socket, it can be started smoothly, or centos and Socket version mapping can be provided.

Ⅳ. How to reproduce it (as minimally and precisely as possible)

spring: application: name: seata-server

logging: config: classpath:logback-spring.xml file: path: /data/seata/logs

console: user: username: seata password: seata

seata: registry: type: nacos nacos: cluster: seata-cluster application: seata-server server-addr: 127.0.0.1:8848 group: DEFAULT_GROUP namespace: 1f5c9ecc-17dc-4e1b-bf56-0226acfbe766 store: session: mode: db lock: mode: db mode: db db: datasource: druid db-type: mysql driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/seata2?useSSL=false&characterEncoding=utf-8 user: root password: root min-conn: 20 max-conn: 100 global-table: global_table branch-table: branch_table lock-table: lock_table distributed-lock-table: distributed_lock query-limit: 100 max-wait: 5000 server: max-commit-retry-timeout: -1 max-rollback-retry-timeout: -1 rollback-retry-timeout-unlock-enable: false enable-check-auth: true enable-parallel-request-handle: true retry-dead-threshold: 130000 xaer-nota-retry-timeout: 60000 recovery: committing-retry-period: 1000 async-committing-retry-period: 1000 rollbacking-retry-period: 1000 timeout-retry-period: 1000 undo: log-save-days: 14 log-delete-period: 86400000 session: branch-async-queue-size: 5000 enable-branch-async: false metrics: enabled: false registry-type: compact exporter-list: prometheus exporter-prometheus-port: 9898 transport: rpc-tc-request-timeout: 10000 rpc-rm-request-timeout: 10000 rpc-tm-request-timeout: 10000 enable-tc-server-batch-send-response: false shutdown: wait: 3 thread-factory: boss-thread-prefix: NettyBoss worker-thread-prefix: NettyServerNIOWorker boss-thread-size: 1 type: unix_domain_socket compressor: zstd server: native security: secretKey: SeataSecretKey0c382ef121d778043159209298fd40bf3850a017 tokenValidityInMilliseconds: 1800000 ignore: urls: /,//*.css,/*/.js,//*.html,//*.map,/*/.svg,//*.png,/*/.ico,/console-fe/public/**,/api/v1/auth/login

Ⅴ. Anything else we need to know?

Epoll kernel library installed

Ⅵ. Environment:

funky-eyes commented 4 months ago

This exception is generated by Netty, it should be consulted with the Netty community.