You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@seata.apache.org by "tonglsh (via GitHub)" <gi...@apache.org> on 2025/08/21 15:39:25 UTC
[I] 客户端配置的retry-interval 好像并不准确 [incubator-seata]
tonglsh opened a new issue, #7590:
URL: https://github.com/apache/incubator-seata/issues/7590
### Check Ahead
- [x] I have searched the [issues](https://github.com/seata/seata/issues) of this repository and believe that this is not a duplicate.
- [ ] I am willing to try to fix this bug myself.
### Ⅰ. Issue Description
您好,我使用incubator-seata-samples-master/at-sample/springboot-mybatis-seata 在模拟全局锁竞争,以排查这种场景对数据库本地锁的持有时间情况
seata-server 1.8
seata-spring-boot-starter 1.8
即使使用默认配置 retry-interval: 10ms、retry-times: 30
在查看了本地的全局事务锁日志,发现从开始重试到抛出重试timeout 之间共消耗了2025-08-21 23:14:36.087 ~2025-08-21 23:14:40.280 共4秒多,请问这是正常的现象吗,按照一般理解应该重试的时间为300ms左右
### Ⅱ. Describe what happened
/Users/mac/import/amazon-corretto-17.jdk/Contents/Home/bin/java -Ddm.jdbc.log.file=./dm_jdbc.log -javaagent:/Users/mac/Applications/IntelliJ IDEA Community Edition.app/Contents/lib/idea_rt.jar=59031:/Users/mac/Applications/IntelliJ IDEA Community Edition.app/Contents/bin -Dfile.encoding=UTF-8 -classpath /Users/mac/Desktop/微服务框架/xc-idc-frame/seata/验证/incubator-seata-samples-master/at-sample/springboot-mybatis-seata/target/classes:/Users/mac/.m2/repository/org/springframework/boot/spring-boot-starter/3.1.12/spring-boot-starter-3.1.12.jar:/Users/mac/.m2/repository/org/springframework/boot/spring-boot/3.1.12/spring-boot-3.1.12.jar:/Users/mac/.m2/repository/org/springframework/spring-context/6.0.21/spring-context-6.0.21.jar:/Users/mac/.m2/repository/org/springframework/spring-expression/6.0.21/spring-expression-6.0.21.jar:/Users/mac/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/3.1.12/spring-boot-autoconfigure-3.1.12.jar:/Users/mac/.m2/repository/org/s
pringframework/boot/spring-boot-starter-logging/3.1.12/spring-boot-starter-logging-3.1.12.jar:/Users/mac/.m2/repository/ch/qos/logback/logback-classic/1.4.14/logback-classic-1.4.14.jar:/Users/mac/.m2/repository/ch/qos/logback/logback-core/1.4.14/logback-core-1.4.14.jar:/Users/mac/.m2/repository/org/apache/logging/log4j/log4j-to-slf4j/2.20.0/log4j-to-slf4j-2.20.0.jar:/Users/mac/.m2/repository/org/apache/logging/log4j/log4j-api/2.20.0/log4j-api-2.20.0.jar:/Users/mac/.m2/repository/org/slf4j/jul-to-slf4j/2.0.13/jul-to-slf4j-2.0.13.jar:/Users/mac/.m2/repository/jakarta/annotation/jakarta.annotation-api/2.1.1/jakarta.annotation-api-2.1.1.jar:/Users/mac/.m2/repository/org/springframework/spring-core/6.0.21/spring-core-6.0.21.jar:/Users/mac/.m2/repository/org/springframework/spring-jcl/6.0.21/spring-jcl-6.0.21.jar:/Users/mac/.m2/repository/org/yaml/snakeyaml/1.33/snakeyaml-1.33.jar:/Users/mac/.m2/repository/org/slf4j/slf4j-api/2.0.13/slf4j-api-2.0.13.jar:/Users/mac/.m2/repository/jakarta/x
ml/bind/jakarta.xml.bind-api/4.0.2/jakarta.xml.bind-api-4.0.2.jar:/Users/mac/.m2/repository/jakarta/activation/jakarta.activation-api/2.1.3/jakarta.activation-api-2.1.3.jar:/Users/mac/.m2/repository/com/chinatower/cloud/spring-cloud-starter-chinatower-seata/3.1.5.0/spring-cloud-starter-chinatower-seata-3.1.5.0.jar:/Users/mac/.m2/repository/com/alibaba/cloud/spring-cloud-starter-alibaba-seata/2022.0.0.2/spring-cloud-starter-alibaba-seata-2022.0.0.2.jar:/Users/mac/.m2/repository/org/springframework/boot/spring-boot-starter-aop/3.1.12/spring-boot-starter-aop-3.1.12.jar:/Users/mac/.m2/repository/org/aspectj/aspectjweaver/1.9.22/aspectjweaver-1.9.22.jar:/Users/mac/.m2/repository/p6spy/p6spy/3.9.1/p6spy-3.9.1.jar:/Users/mac/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.15.4/jackson-databind-2.15.4.jar:/Users/mac/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.15.4/jackson-annotations-2.15.4.jar:/Users/mac/.m2/repository/com/fasterxml/jackson/core/jackson-cor
e/2.15.4/jackson-core-2.15.4.jar:/Users/mac/.m2/repository/org/springframework/boot/spring-boot-starter-jdbc/3.1.12/spring-boot-starter-jdbc-3.1.12.jar:/Users/mac/.m2/repository/com/zaxxer/HikariCP/5.0.1/HikariCP-5.0.1.jar:/Users/mac/.m2/repository/org/springframework/spring-jdbc/6.0.21/spring-jdbc-6.0.21.jar:/Users/mac/.m2/repository/org/springframework/spring-beans/6.0.21/spring-beans-6.0.21.jar:/Users/mac/.m2/repository/org/springframework/spring-tx/6.0.21/spring-tx-6.0.21.jar:/Users/mac/.m2/repository/mysql/mysql-connector-java/8.0.22/mysql-connector-java-8.0.22.jar:/Users/mac/.m2/repository/com/google/protobuf/protobuf-java/3.11.4/protobuf-java-3.11.4.jar:/Users/mac/.m2/repository/com/dameng/DmJdbcDriver8/8.1.4.6/DmJdbcDriver8-8.1.4.6.jar:/Users/mac/.m2/repository/com/chinatower/cloud/spring-cloud-starter-chinatower-mybatis/3.1.5.0/spring-cloud-starter-chinatower-mybatis-3.1.5.0.jar:/Users/mac/.m2/repository/org/mybatis/mybatis/3.5.16/mybatis-3.5.16.jar:/Users/mac/.m2/repositor
y/com/github/pagehelper/pagehelper-spring-boot-starter/2.1.0/pagehelper-spring-boot-starter-2.1.0.jar:/Users/mac/.m2/repository/com/github/pagehelper/pagehelper-spring-boot-autoconfigure/2.1.0/pagehelper-spring-boot-autoconfigure-2.1.0.jar:/Users/mac/.m2/repository/com/github/pagehelper/pagehelper/6.1.0/pagehelper-6.1.0.jar:/Users/mac/.m2/repository/com/github/jsqlparser/jsqlparser/4.7/jsqlparser-4.7.jar:/Users/mac/.m2/repository/org/mybatis/spring/boot/mybatis-spring-boot-starter/3.0.3/mybatis-spring-boot-starter-3.0.3.jar:/Users/mac/.m2/repository/org/mybatis/spring/boot/mybatis-spring-boot-autoconfigure/3.0.3/mybatis-spring-boot-autoconfigure-3.0.3.jar:/Users/mac/.m2/repository/org/mybatis/mybatis-spring/3.0.3/mybatis-spring-3.0.3.jar:/Users/mac/.m2/repository/com/alibaba/druid-spring-boot-starter/1.2.23/druid-spring-boot-starter-1.2.23.jar:/Users/mac/.m2/repository/com/alibaba/druid/1.2.23/druid-1.2.23.jar:/Users/mac/.m2/repository/org/glassfish/jaxb/jaxb-runtime/4.0.5/jaxb-runt
ime-4.0.5.jar:/Users/mac/.m2/repository/org/glassfish/jaxb/jaxb-core/4.0.5/jaxb-core-4.0.5.jar:/Users/mac/.m2/repository/org/eclipse/angus/angus-activation/2.0.2/angus-activation-2.0.2.jar:/Users/mac/.m2/repository/org/glassfish/jaxb/txw2/4.0.5/txw2-4.0.5.jar:/Users/mac/.m2/repository/com/sun/istack/istack-commons-runtime/4.1.2/istack-commons-runtime-4.1.2.jar:/Users/mac/.m2/repository/io/seata/seata-spring-boot-starter/1.8.0/seata-spring-boot-starter-1.8.0.jar:/Users/mac/.m2/repository/io/seata/seata-spring-autoconfigure-client/1.8.0/seata-spring-autoconfigure-client-1.8.0.jar:/Users/mac/.m2/repository/io/seata/seata-spring-autoconfigure-core/1.8.0/seata-spring-autoconfigure-core-1.8.0.jar:/Users/mac/.m2/repository/io/seata/seata-all/1.8.0/seata-all-1.8.0.jar:/Users/mac/.m2/repository/org/springframework/spring-aop/6.0.21/spring-aop-6.0.21.jar:/Users/mac/.m2/repository/org/springframework/spring-webmvc/6.0.21/spring-webmvc-6.0.21.jar:/Users/mac/.m2/repository/org/springframework/sp
ring-web/6.0.21/spring-web-6.0.21.jar:/Users/mac/.m2/repository/io/micrometer/micrometer-observation/1.11.12/micrometer-observation-1.11.12.jar:/Users/mac/.m2/repository/io/micrometer/micrometer-commons/1.11.12/micrometer-commons-1.11.12.jar:/Users/mac/.m2/repository/io/netty/netty-all/4.1.110.Final/netty-all-4.1.110.Final.jar:/Users/mac/.m2/repository/io/netty/netty-buffer/4.1.110.Final/netty-buffer-4.1.110.Final.jar:/Users/mac/.m2/repository/io/netty/netty-codec/4.1.110.Final/netty-codec-4.1.110.Final.jar:/Users/mac/.m2/repository/io/netty/netty-codec-dns/4.1.110.Final/netty-codec-dns-4.1.110.Final.jar:/Users/mac/.m2/repository/io/netty/netty-codec-haproxy/4.1.110.Final/netty-codec-haproxy-4.1.110.Final.jar:/Users/mac/.m2/repository/io/netty/netty-codec-http/4.1.110.Final/netty-codec-http-4.1.110.Final.jar:/Users/mac/.m2/repository/io/netty/netty-codec-http2/4.1.110.Final/netty-codec-http2-4.1.110.Final.jar:/Users/mac/.m2/repository/io/netty/netty-codec-memcache/4.1.110.Final/nett
y-codec-memcache-4.1.110.Final.jar:/Users/mac/.m2/repository/io/netty/netty-codec-mqtt/4.1.110.Final/netty-codec-mqtt-4.1.110.Final.jar:/Users/mac/.m2/repository/io/netty/netty-codec-redis/4.1.110.Final/netty-codec-redis-4.1.110.Final.jar:/Users/mac/.m2/repository/io/netty/netty-codec-smtp/4.1.110.Final/netty-codec-smtp-4.1.110.Final.jar:/Users/mac/.m2/repository/io/netty/netty-codec-socks/4.1.110.Final/netty-codec-socks-4.1.110.Final.jar:/Users/mac/.m2/repository/io/netty/netty-codec-stomp/4.1.110.Final/netty-codec-stomp-4.1.110.Final.jar:/Users/mac/.m2/repository/io/netty/netty-codec-xml/4.1.110.Final/netty-codec-xml-4.1.110.Final.jar:/Users/mac/.m2/repository/io/netty/netty-common/4.1.110.Final/netty-common-4.1.110.Final.jar:/Users/mac/.m2/repository/io/netty/netty-handler/4.1.110.Final/netty-handler-4.1.110.Final.jar:/Users/mac/.m2/repository/io/netty/netty-transport-native-unix-common/4.1.110.Final/netty-transport-native-unix-common-4.1.110.Final.jar:/Users/mac/.m2/repository/i
o/netty/netty-handler-proxy/4.1.110.Final/netty-handler-proxy-4.1.110.Final.jar:/Users/mac/.m2/repository/io/netty/netty-handler-ssl-ocsp/4.1.110.Final/netty-handler-ssl-ocsp-4.1.110.Final.jar:/Users/mac/.m2/repository/io/netty/netty-resolver/4.1.110.Final/netty-resolver-4.1.110.Final.jar:/Users/mac/.m2/repository/io/netty/netty-resolver-dns/4.1.110.Final/netty-resolver-dns-4.1.110.Final.jar:/Users/mac/.m2/repository/io/netty/netty-transport/4.1.110.Final/netty-transport-4.1.110.Final.jar:/Users/mac/.m2/repository/io/netty/netty-transport-rxtx/4.1.110.Final/netty-transport-rxtx-4.1.110.Final.jar:/Users/mac/.m2/repository/io/netty/netty-transport-sctp/4.1.110.Final/netty-transport-sctp-4.1.110.Final.jar:/Users/mac/.m2/repository/io/netty/netty-transport-udt/4.1.110.Final/netty-transport-udt-4.1.110.Final.jar:/Users/mac/.m2/repository/io/netty/netty-transport-classes-epoll/4.1.110.Final/netty-transport-classes-epoll-4.1.110.Final.jar:/Users/mac/.m2/repository/io/netty/netty-transport-
classes-kqueue/4.1.110.Final/netty-transport-classes-kqueue-4.1.110.Final.jar:/Users/mac/.m2/repository/io/netty/netty-resolver-dns-classes-macos/4.1.110.Final/netty-resolver-dns-classes-macos-4.1.110.Final.jar:/Users/mac/.m2/repository/io/netty/netty-transport-native-epoll/4.1.110.Final/netty-transport-native-epoll-4.1.110.Final-linux-x86_64.jar:/Users/mac/.m2/repository/io/netty/netty-transport-native-epoll/4.1.110.Final/netty-transport-native-epoll-4.1.110.Final-linux-aarch_64.jar:/Users/mac/.m2/repository/io/netty/netty-transport-native-epoll/4.1.110.Final/netty-transport-native-epoll-4.1.110.Final-linux-riscv64.jar:/Users/mac/.m2/repository/io/netty/netty-transport-native-kqueue/4.1.110.Final/netty-transport-native-kqueue-4.1.110.Final-osx-x86_64.jar:/Users/mac/.m2/repository/io/netty/netty-transport-native-kqueue/4.1.110.Final/netty-transport-native-kqueue-4.1.110.Final-osx-aarch_64.jar:/Users/mac/.m2/repository/io/netty/netty-resolver-dns-native-macos/4.1.110.Final/netty-reso
lver-dns-native-macos-4.1.110.Final-osx-x86_64.jar:/Users/mac/.m2/repository/io/netty/netty-resolver-dns-native-macos/4.1.110.Final/netty-resolver-dns-native-macos-4.1.110.Final-osx-aarch_64.jar:/Users/mac/.m2/repository/org/antlr/antlr4/4.8/antlr4-4.8.jar:/Users/mac/.m2/repository/org/antlr/antlr4-runtime/4.8/antlr4-runtime-4.8.jar:/Users/mac/.m2/repository/org/antlr/antlr-runtime/3.5.2/antlr-runtime-3.5.2.jar:/Users/mac/.m2/repository/org/antlr/ST4/4.3/ST4-4.3.jar:/Users/mac/.m2/repository/org/abego/treelayout/org.abego.treelayout.core/1.0.3/org.abego.treelayout.core-1.0.3.jar:/Users/mac/.m2/repository/org/glassfish/javax.json/1.0.4/javax.json-1.0.4.jar:/Users/mac/.m2/repository/com/ibm/icu/icu4j/61.1/icu4j-61.1.jar:/Users/mac/.m2/repository/com/alibaba/fastjson/1.2.83/fastjson-1.2.83.jar:/Users/mac/.m2/repository/com/typesafe/config/1.2.1/config-1.2.1.jar:/Users/mac/.m2/repository/commons-lang/commons-lang/2.6/commons-lang-2.6.jar:/Users/mac/.m2/repository/org/apache/commons/comm
ons-pool2/2.11.1/commons-pool2-2.11.1.jar:/Users/mac/.m2/repository/commons-pool/commons-pool/1.6/commons-pool-1.6.jar:/Users/mac/.m2/repository/org/apache/dubbo/extensions/dubbo-filter-seata/1.0.2/dubbo-filter-seata-1.0.2.jar:/Users/mac/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar:/Users/mac/.m2/repository/com/google/guava/guava/30.1-jre/guava-30.1-jre.jar:/Users/mac/.m2/repository/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar:/Users/mac/.m2/repository/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar:/Users/mac/.m2/repository/org/checkerframework/checker-qual/3.5.0/checker-qual-3.5.0.jar:/Users/mac/.m2/repository/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4.jar:/Users/mac/.m2/repository/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar:/Users/mac/.m2/repository/com/github/ben-manes/caffeine/caffeine/3.1.8/caffeine-3.1.8.jar org.apache.seata.SpringbootSeataApplication
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v3.1.12)
2025-08-21 23:14:32.277 [main] INFO o.a.seata.SpringbootSeataApplication - Starting SpringbootSeataApplication using Java 17.0.3 with PID 45921 (/Users/mac/Desktop/微服务框架/xc-idc-frame/seata/验证/incubator-seata-samples-master/at-sample/springboot-mybatis-seata/target/classes started by mac in /Users/mac/Desktop/微服务框架/xc-idc-frame/seata/验证/incubator-seata-samples-master)
2025-08-21 23:14:32.281 [main] INFO o.a.seata.SpringbootSeataApplication - No active profile set, falling back to 1 default profile: "default"
2025-08-21 23:14:33.395 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'io.seata.spring.boot.autoconfigure.SeataCoreAutoConfiguration' of type [io.seata.spring.boot.autoconfigure.SeataCoreAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2025-08-21 23:14:33.397 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'springApplicationContextProvider' of type [io.seata.spring.boot.autoconfigure.provider.SpringApplicationContextProvider] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2025-08-21 23:14:33.397 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'io.seata.spring.boot.autoconfigure.SeataAutoConfiguration' of type [io.seata.spring.boot.autoconfigure.SeataAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2025-08-21 23:14:33.460 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'failureHandler' of type [io.seata.tm.api.DefaultFailureHandlerImpl] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2025-08-21 23:14:33.479 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'springCloudAlibabaConfiguration' of type [io.seata.spring.boot.autoconfigure.properties.SpringCloudAlibabaConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2025-08-21 23:14:33.484 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'seataProperties' of type [io.seata.spring.boot.autoconfigure.properties.SeataProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2025-08-21 23:14:33.485 [main] INFO i.s.s.b.a.SeataAutoConfiguration - Automatically configure Seata
2025-08-21 23:14:33.554 [main] INFO i.seata.config.ConfigurationFactory - load Configuration from :Spring Configuration
2025-08-21 23:14:33.566 [main] INFO i.seata.config.ConfigurationFactory - load Configuration from :Spring Configuration
2025-08-21 23:14:33.577 [main] INFO i.s.s.a.GlobalTransactionScanner - Initializing Global Transaction Clients ...
2025-08-21 23:14:33.662 [main] INFO i.s.c.rpc.netty.NettyClientBootstrap - NettyClientBootstrap has started
2025-08-21 23:14:33.663 [main] INFO i.s.d.registry.RegistryFactory - use registry center type: file
2025-08-21 23:14:33.670 [main] INFO i.s.c.r.n.NettyClientChannelManager - will connect to 10.180.22.20:61111
2025-08-21 23:14:33.698 [main] INFO i.s.c.rpc.netty.NettyPoolableFactory - NettyPool create channel to transactionRole:TMROLE,address:10.180.22.20:61111,msg:< RegisterTMRequest{version='1.8.0', applicationId='springboot-mybatis-seata', transactionServiceGroup='seata-framework-group', extraData='ak=null
digest=seata-framework-group,100.103.26.86,1755789273696
timestamp=1755789273696
authVersion=V4
vgroup=seata-framework-group
ip=100.103.26.86
'} >
2025-08-21 23:14:33.963 [NettyClientSelector_TMROLE_1_1] WARN i.s.c.l.EnhancedServiceLoader$InnerEnhancedServiceLoader - Load [io.seata.serializer.hessian.HessianSerializer] class fail: com/caucho/hessian/io/AbstractHessianOutput
2025-08-21 23:14:34.001 [main] INFO i.s.c.r.netty.TmNettyRemotingClient - register TM success. client version:1.8.0, server version:2.4.0,channel:[id: 0x1444ad38, L:/100.103.26.86:59034 - R:/10.180.22.20:61111]
2025-08-21 23:14:34.009 [main] INFO i.s.c.rpc.netty.NettyPoolableFactory - register success, cost 74 ms, version:2.4.0,role:TMROLE,channel:[id: 0x1444ad38, L:/100.103.26.86:59034 - R:/10.180.22.20:61111]
2025-08-21 23:14:34.009 [main] INFO i.s.s.a.GlobalTransactionScanner - Transaction Manager Client is initialized. applicationId[springboot-mybatis-seata] txServiceGroup[seata-framework-group]
2025-08-21 23:14:34.020 [main] INFO io.seata.rm.datasource.AsyncWorker - Async Commit Buffer Limit: 1000
2025-08-21 23:14:34.021 [main] INFO i.s.r.d.xa.ResourceManagerXA - ResourceManagerXA init ...
2025-08-21 23:14:34.026 [main] INFO i.s.c.rpc.netty.NettyClientBootstrap - NettyClientBootstrap has started
2025-08-21 23:14:34.026 [main] INFO i.s.s.a.GlobalTransactionScanner - Resource Manager is initialized. applicationId[springboot-mybatis-seata] txServiceGroup[seata-framework-group]
2025-08-21 23:14:34.026 [main] INFO i.s.s.a.GlobalTransactionScanner - Global Transaction Clients are initialized.
2025-08-21 23:14:34.172 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
2025-08-21 23:14:34.600 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.p6spy.engine.wrapper.ConnectionWrapper@6003ad65
2025-08-21 23:14:34.602 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
2025-08-21 23:14:34.673 [main] WARN i.s.rm.datasource.DataSourceProxy - support for the dameng database is currently an experimental feature
2025-08-21 23:14:34.673 [main] INFO i.s.c.r.n.NettyClientChannelManager - will connect to 10.180.22.20:61111
2025-08-21 23:14:34.673 [main] INFO i.s.c.r.netty.RmNettyRemotingClient - RM will register :jdbc:dm://10.180.22.120:5236/TEST_AUTH
2025-08-21 23:14:34.673 [main] INFO i.s.c.rpc.netty.NettyPoolableFactory - NettyPool create channel to transactionRole:RMROLE,address:10.180.22.20:61111,msg:< RegisterRMRequest{resourceIds='jdbc:dm://10.180.22.120:5236/TEST_AUTH', version='1.8.0', applicationId='springboot-mybatis-seata', transactionServiceGroup='seata-framework-group', extraData='null'} >
2025-08-21 23:14:34.705 [main] INFO i.s.c.r.netty.RmNettyRemotingClient - register RM success. client version:1.8.0, server version:2.4.0,channel:[id: 0x4c3756e7, L:/100.103.26.86:59038 - R:/10.180.22.20:61111]
2025-08-21 23:14:34.705 [main] INFO i.s.c.rpc.netty.NettyPoolableFactory - register success, cost 17 ms, version:2.4.0,role:RMROLE,channel:[id: 0x4c3756e7, L:/100.103.26.86:59038 - R:/10.180.22.20:61111]
2025-08-21 23:14:34.708 [main] INFO i.s.s.a.d.SeataAutoDataSourceProxyCreator - Auto proxy data source 'dataSource' by 'AT' mode.
2025-08-21 23:14:35.118 [main] INFO i.s.s.a.GlobalTransactionScanner - Bean [org.apache.seata.service.impl.BusinessServiceImpl] with name [businessServiceImpl] would use interceptor [io.seata.spring.annotation.GlobalTransactionalInterceptor]
2025-08-21 23:14:35.380 [main] INFO o.a.seata.SpringbootSeataApplication - Started SpringbootSeataApplication in 3.672 seconds (process running for 4.601)
2025-08-21 23:14:35.389 [Thread-2] INFO i.seata.tm.TransactionManagerHolder - TransactionManager Singleton io.seata.tm.DefaultTransactionManager@3547b54c
2025-08-21 23:14:35.423 [Thread-2] INFO i.s.tm.api.DefaultGlobalTransaction - Begin new global transaction [10.180.22.20:61111:9690021082162052]
2025-08-21 23:14:35.423 [Thread-2] INFO o.a.seata.service.BusinessService - purchase begin ... xid: 10.180.22.20:61111:9690021082162052
2025-08-21 23:14:35.423 [Thread-2] INFO o.a.seata.service.StorageService - Stock Service Begin ... xid: 10.180.22.20:61111:9690021082162052
2025-08-21 23:14:35.423 [Thread-2] INFO o.a.seata.service.StorageService - Deducting inventory SQL: update stock_tbl set count = count - 1 where commodity_code = C00321
2025-08-21 23:14:35.747 [Thread-2] INFO p6spy - 1755789275747 | 13ms | statement | connection 0 | select id, commodity_code commodityCode, count from stock_tbl WHERE commodity_code = 'C00321'
2025-08-21 23:14:36.087 [Thread-2] INFO p6spy - 1755789276086 | 12ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE id = 116 FOR UPDATE
2025-08-21 23:14:36.107 [Thread-2] INFO p6spy - 1755789276107 | 17ms | statement | connection 0 | update stock_tbl set count = 99 WHERE id = 116
2025-08-21 23:14:36.149 [Thread-2] INFO p6spy - 1755789276149 | 27ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE ("id") in ( (116) )
2025-08-21 23:14:36.183 [Thread-2] INFO p6spy - 1755789276182 | 12ms | rollback | connection 0 |
2025-08-21 23:14:36.244 [Thread-2] INFO p6spy - 1755789276243 | 13ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE id = 116 FOR UPDATE
2025-08-21 23:14:36.258 [Thread-2] INFO p6spy - 1755789276257 | 13ms | statement | connection 0 | update stock_tbl set count = 99 WHERE id = 116
2025-08-21 23:14:36.285 [Thread-2] INFO p6spy - 1755789276284 | 13ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE ("id") in ( (116) )
2025-08-21 23:14:36.312 [Thread-2] INFO p6spy - 1755789276312 | 11ms | rollback | connection 0 |
2025-08-21 23:14:36.366 [Thread-2] INFO p6spy - 1755789276366 | 12ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE id = 116 FOR UPDATE
2025-08-21 23:14:36.378 [Thread-2] INFO p6spy - 1755789276378 | 11ms | statement | connection 0 | update stock_tbl set count = 99 WHERE id = 116
2025-08-21 23:14:36.404 [Thread-2] INFO p6spy - 1755789276404 | 12ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE ("id") in ( (116) )
2025-08-21 23:14:36.433 [Thread-2] INFO p6spy - 1755789276432 | 12ms | rollback | connection 0 |
2025-08-21 23:14:36.469 [Thread-2] INFO p6spy - 1755789276469 | 12ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE id = 116 FOR UPDATE
2025-08-21 23:14:36.482 [Thread-2] INFO p6spy - 1755789276482 | 12ms | statement | connection 0 | update stock_tbl set count = 99 WHERE id = 116
2025-08-21 23:14:36.525 [Thread-2] INFO p6spy - 1755789276525 | 30ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE ("id") in ( (116) )
2025-08-21 23:14:36.554 [Thread-2] INFO p6spy - 1755789276554 | 12ms | rollback | connection 0 |
2025-08-21 23:14:36.610 [Thread-2] INFO p6spy - 1755789276610 | 30ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE id = 116 FOR UPDATE
2025-08-21 23:14:36.623 [Thread-2] INFO p6spy - 1755789276623 | 12ms | statement | connection 0 | update stock_tbl set count = 99 WHERE id = 116
2025-08-21 23:14:36.649 [Thread-2] INFO p6spy - 1755789276649 | 12ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE ("id") in ( (116) )
2025-08-21 23:14:36.678 [Thread-2] INFO p6spy - 1755789276677 | 12ms | rollback | connection 0 |
2025-08-21 23:14:36.715 [Thread-2] INFO p6spy - 1755789276715 | 12ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE id = 116 FOR UPDATE
2025-08-21 23:14:36.728 [Thread-2] INFO p6spy - 1755789276728 | 12ms | statement | connection 0 | update stock_tbl set count = 99 WHERE id = 116
2025-08-21 23:14:36.754 [Thread-2] INFO p6spy - 1755789276754 | 12ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE ("id") in ( (116) )
2025-08-21 23:14:36.782 [Thread-2] INFO p6spy - 1755789276782 | 12ms | rollback | connection 0 |
2025-08-21 23:14:36.838 [Thread-2] INFO p6spy - 1755789276838 | 31ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE id = 116 FOR UPDATE
2025-08-21 23:14:36.851 [Thread-2] INFO p6spy - 1755789276851 | 12ms | statement | connection 0 | update stock_tbl set count = 99 WHERE id = 116
2025-08-21 23:14:36.878 [Thread-2] INFO p6spy - 1755789276877 | 12ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE ("id") in ( (116) )
2025-08-21 23:14:36.922 [Thread-2] INFO p6spy - 1755789276921 | 28ms | rollback | connection 0 |
2025-08-21 23:14:36.960 [Thread-2] INFO p6spy - 1755789276960 | 12ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE id = 116 FOR UPDATE
2025-08-21 23:14:36.989 [Thread-2] INFO p6spy - 1755789276989 | 28ms | statement | connection 0 | update stock_tbl set count = 99 WHERE id = 116
2025-08-21 23:14:37.020 [Thread-2] INFO p6spy - 1755789277020 | 17ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE ("id") in ( (116) )
2025-08-21 23:14:37.049 [Thread-2] INFO p6spy - 1755789277049 | 12ms | rollback | connection 0 |
2025-08-21 23:14:37.085 [Thread-2] INFO p6spy - 1755789277085 | 12ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE id = 116 FOR UPDATE
2025-08-21 23:14:37.098 [Thread-2] INFO p6spy - 1755789277097 | 12ms | statement | connection 0 | update stock_tbl set count = 99 WHERE id = 116
2025-08-21 23:14:37.141 [Thread-2] INFO p6spy - 1755789277141 | 30ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE ("id") in ( (116) )
2025-08-21 23:14:37.168 [Thread-2] INFO p6spy - 1755789277168 | 11ms | rollback | connection 0 |
2025-08-21 23:14:37.206 [Thread-2] INFO p6spy - 1755789277205 | 12ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE id = 116 FOR UPDATE
2025-08-21 23:14:37.218 [Thread-2] INFO p6spy - 1755789277218 | 12ms | statement | connection 0 | update stock_tbl set count = 99 WHERE id = 116
2025-08-21 23:14:37.244 [Thread-2] INFO p6spy - 1755789277244 | 12ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE ("id") in ( (116) )
2025-08-21 23:14:37.272 [Thread-2] INFO p6spy - 1755789277272 | 11ms | rollback | connection 0 |
2025-08-21 23:14:37.326 [Thread-2] INFO p6spy - 1755789277325 | 30ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE id = 116 FOR UPDATE
2025-08-21 23:14:37.338 [Thread-2] INFO p6spy - 1755789277338 | 12ms | statement | connection 0 | update stock_tbl set count = 99 WHERE id = 116
2025-08-21 23:14:37.364 [Thread-2] INFO p6spy - 1755789277364 | 12ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE ("id") in ( (116) )
2025-08-21 23:14:37.422 [Thread-2] INFO p6spy - 1755789277421 | 11ms | rollback | connection 0 |
2025-08-21 23:14:37.457 [Thread-2] INFO p6spy - 1755789277457 | 12ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE id = 116 FOR UPDATE
2025-08-21 23:14:37.471 [Thread-2] INFO p6spy - 1755789277470 | 12ms | statement | connection 0 | update stock_tbl set count = 99 WHERE id = 116
2025-08-21 23:14:37.496 [Thread-2] INFO p6spy - 1755789277496 | 12ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE ("id") in ( (116) )
2025-08-21 23:14:37.541 [Thread-2] INFO p6spy - 1755789277541 | 28ms | rollback | connection 0 |
2025-08-21 23:14:37.580 [Thread-2] INFO p6spy - 1755789277580 | 12ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE id = 116 FOR UPDATE
2025-08-21 23:14:37.593 [Thread-2] INFO p6spy - 1755789277593 | 12ms | statement | connection 0 | update stock_tbl set count = 99 WHERE id = 116
2025-08-21 23:14:37.618 [Thread-2] INFO p6spy - 1755789277618 | 12ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE ("id") in ( (116) )
2025-08-21 23:14:37.665 [Thread-2] INFO p6spy - 1755789277665 | 31ms | rollback | connection 0 |
2025-08-21 23:14:37.701 [Thread-2] INFO p6spy - 1755789277701 | 11ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE id = 116 FOR UPDATE
2025-08-21 23:14:37.729 [Thread-2] INFO p6spy - 1755789277729 | 27ms | statement | connection 0 | update stock_tbl set count = 99 WHERE id = 116
2025-08-21 23:14:37.755 [Thread-2] INFO p6spy - 1755789277755 | 12ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE ("id") in ( (116) )
2025-08-21 23:14:37.804 [Thread-2] INFO p6spy - 1755789277803 | 32ms | rollback | connection 0 |
2025-08-21 23:14:37.841 [Thread-2] INFO p6spy - 1755789277841 | 12ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE id = 116 FOR UPDATE
2025-08-21 23:14:37.853 [Thread-2] INFO p6spy - 1755789277853 | 11ms | statement | connection 0 | update stock_tbl set count = 99 WHERE id = 116
2025-08-21 23:14:38.106 [Thread-2] INFO p6spy - 1755789278105 | 239ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE ("id") in ( (116) )
2025-08-21 23:14:38.136 [Thread-2] INFO p6spy - 1755789278136 | 14ms | rollback | connection 0 |
2025-08-21 23:14:38.175 [Thread-2] INFO p6spy - 1755789278175 | 12ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE id = 116 FOR UPDATE
2025-08-21 23:14:38.206 [Thread-2] INFO p6spy - 1755789278206 | 30ms | statement | connection 0 | update stock_tbl set count = 99 WHERE id = 116
2025-08-21 23:14:38.250 [Thread-2] INFO p6spy - 1755789278250 | 30ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE ("id") in ( (116) )
2025-08-21 23:14:38.278 [Thread-2] INFO p6spy - 1755789278278 | 12ms | rollback | connection 0 |
2025-08-21 23:14:38.339 [Thread-2] INFO p6spy - 1755789278339 | 35ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE id = 116 FOR UPDATE
2025-08-21 23:14:38.352 [Thread-2] INFO p6spy - 1755789278352 | 12ms | statement | connection 0 | update stock_tbl set count = 99 WHERE id = 116
2025-08-21 23:14:38.378 [Thread-2] INFO p6spy - 1755789278378 | 12ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE ("id") in ( (116) )
2025-08-21 23:14:38.406 [Thread-2] INFO p6spy - 1755789278406 | 12ms | rollback | connection 0 |
2025-08-21 23:14:38.441 [Thread-2] INFO p6spy - 1755789278441 | 12ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE id = 116 FOR UPDATE
2025-08-21 23:14:38.454 [Thread-2] INFO p6spy - 1755789278454 | 11ms | statement | connection 0 | update stock_tbl set count = 99 WHERE id = 116
2025-08-21 23:14:38.478 [Thread-2] INFO p6spy - 1755789278478 | 12ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE ("id") in ( (116) )
2025-08-21 23:14:38.504 [Thread-2] INFO p6spy - 1755789278504 | 11ms | rollback | connection 0 |
2025-08-21 23:14:38.540 [Thread-2] INFO p6spy - 1755789278540 | 12ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE id = 116 FOR UPDATE
2025-08-21 23:14:38.570 [Thread-2] INFO p6spy - 1755789278570 | 29ms | statement | connection 0 | update stock_tbl set count = 99 WHERE id = 116
2025-08-21 23:14:38.595 [Thread-2] INFO p6spy - 1755789278595 | 12ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE ("id") in ( (116) )
2025-08-21 23:14:38.624 [Thread-2] INFO p6spy - 1755789278624 | 11ms | rollback | connection 0 |
2025-08-21 23:14:38.681 [Thread-2] INFO p6spy - 1755789278681 | 33ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE id = 116 FOR UPDATE
2025-08-21 23:14:38.693 [Thread-2] INFO p6spy - 1755789278693 | 11ms | statement | connection 0 | update stock_tbl set count = 99 WHERE id = 116
2025-08-21 23:14:38.718 [Thread-2] INFO p6spy - 1755789278718 | 12ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE ("id") in ( (116) )
2025-08-21 23:14:38.745 [Thread-2] INFO p6spy - 1755789278745 | 11ms | rollback | connection 0 |
2025-08-21 23:14:38.780 [Thread-2] INFO p6spy - 1755789278780 | 12ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE id = 116 FOR UPDATE
2025-08-21 23:14:38.792 [Thread-2] INFO p6spy - 1755789278792 | 12ms | statement | connection 0 | update stock_tbl set count = 99 WHERE id = 116
2025-08-21 23:14:38.827 [Thread-2] INFO p6spy - 1755789278827 | 14ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE ("id") in ( (116) )
2025-08-21 23:14:38.854 [Thread-2] INFO p6spy - 1755789278854 | 11ms | rollback | connection 0 |
2025-08-21 23:14:38.891 [Thread-2] INFO p6spy - 1755789278891 | 11ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE id = 116 FOR UPDATE
2025-08-21 23:14:38.904 [Thread-2] INFO p6spy - 1755789278904 | 12ms | statement | connection 0 | update stock_tbl set count = 99 WHERE id = 116
2025-08-21 23:14:38.945 [Thread-2] INFO p6spy - 1755789278945 | 11ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE ("id") in ( (116) )
2025-08-21 23:14:38.974 [Thread-2] INFO p6spy - 1755789278974 | 14ms | rollback | connection 0 |
2025-08-21 23:14:39.010 [Thread-2] INFO p6spy - 1755789279010 | 12ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE id = 116 FOR UPDATE
2025-08-21 23:14:39.024 [Thread-2] INFO p6spy - 1755789279024 | 13ms | statement | connection 0 | update stock_tbl set count = 99 WHERE id = 116
2025-08-21 23:14:39.075 [Thread-2] INFO p6spy - 1755789279075 | 21ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE ("id") in ( (116) )
2025-08-21 23:14:39.104 [Thread-2] INFO p6spy - 1755789279104 | 12ms | rollback | connection 0 |
2025-08-21 23:14:39.141 [Thread-2] INFO p6spy - 1755789279141 | 13ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE id = 116 FOR UPDATE
2025-08-21 23:14:39.154 [Thread-2] INFO p6spy - 1755789279154 | 12ms | statement | connection 0 | update stock_tbl set count = 99 WHERE id = 116
2025-08-21 23:14:39.179 [Thread-2] INFO p6spy - 1755789279179 | 12ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE ("id") in ( (116) )
2025-08-21 23:14:39.207 [Thread-2] INFO p6spy - 1755789279207 | 12ms | rollback | connection 0 |
2025-08-21 23:14:39.244 [Thread-2] INFO p6spy - 1755789279244 | 12ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE id = 116 FOR UPDATE
2025-08-21 23:14:39.257 [Thread-2] INFO p6spy - 1755789279257 | 12ms | statement | connection 0 | update stock_tbl set count = 99 WHERE id = 116
2025-08-21 23:14:39.301 [Thread-2] INFO p6spy - 1755789279301 | 30ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE ("id") in ( (116) )
2025-08-21 23:14:39.533 [Thread-2] INFO p6spy - 1755789279533 | 12ms | rollback | connection 0 |
2025-08-21 23:14:39.571 [Thread-2] INFO p6spy - 1755789279571 | 12ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE id = 116 FOR UPDATE
2025-08-21 23:14:39.583 [Thread-2] INFO p6spy - 1755789279583 | 11ms | statement | connection 0 | update stock_tbl set count = 99 WHERE id = 116
2025-08-21 23:14:39.632 [Thread-2] INFO p6spy - 1755789279632 | 36ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE ("id") in ( (116) )
2025-08-21 23:14:39.659 [Thread-2] INFO p6spy - 1755789279658 | 11ms | rollback | connection 0 |
2025-08-21 23:14:39.695 [Thread-2] INFO p6spy - 1755789279695 | 12ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE id = 116 FOR UPDATE
2025-08-21 23:14:39.708 [Thread-2] INFO p6spy - 1755789279708 | 12ms | statement | connection 0 | update stock_tbl set count = 99 WHERE id = 116
2025-08-21 23:14:39.735 [Thread-2] INFO p6spy - 1755789279735 | 13ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE ("id") in ( (116) )
2025-08-21 23:14:39.762 [Thread-2] INFO p6spy - 1755789279761 | 11ms | rollback | connection 0 |
2025-08-21 23:14:39.929 [Thread-2] INFO p6spy - 1755789279928 | 142ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE id = 116 FOR UPDATE
2025-08-21 23:14:39.941 [Thread-2] INFO p6spy - 1755789279941 | 12ms | statement | connection 0 | update stock_tbl set count = 99 WHERE id = 116
2025-08-21 23:14:39.966 [Thread-2] INFO p6spy - 1755789279966 | 12ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE ("id") in ( (116) )
2025-08-21 23:14:39.994 [Thread-2] INFO p6spy - 1755789279994 | 12ms | rollback | connection 0 |
2025-08-21 23:14:40.031 [Thread-2] INFO p6spy - 1755789280031 | 12ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE id = 116 FOR UPDATE
2025-08-21 23:14:40.044 [Thread-2] INFO p6spy - 1755789280044 | 12ms | statement | connection 0 | update stock_tbl set count = 99 WHERE id = 116
2025-08-21 23:14:40.069 [Thread-2] INFO p6spy - 1755789280069 | 12ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE ("id") in ( (116) )
2025-08-21 23:14:40.112 [Thread-2] INFO p6spy - 1755789280112 | 14ms | rollback | connection 0 |
2025-08-21 23:14:40.149 [Thread-2] INFO p6spy - 1755789280149 | 12ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE id = 116 FOR UPDATE
2025-08-21 23:14:40.162 [Thread-2] INFO p6spy - 1755789280162 | 12ms | statement | connection 0 | update stock_tbl set count = 99 WHERE id = 116
2025-08-21 23:14:40.210 [Thread-2] INFO p6spy - 1755789280209 | 12ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE ("id") in ( (116) )
2025-08-21 23:14:40.242 [Thread-2] INFO p6spy - 1755789280242 | 12ms | rollback | connection 0 |
2025-08-21 23:14:40.280 [Thread-2] INFO p6spy - 1755789280280 | 12ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE id = 116 FOR UPDATE
2025-08-21 23:14:40.293 [Thread-2] INFO p6spy - 1755789280293 | 11ms | statement | connection 0 | update stock_tbl set count = 99 WHERE id = 116
2025-08-21 23:14:40.319 [Thread-2] INFO p6spy - 1755789280319 | 12ms | statement | connection 0 | SELECT "id", "count" FROM stock_tbl WHERE ("id") in ( (116) )
2025-08-21 23:14:40.347 [Thread-2] INFO p6spy - 1755789280347 | 12ms | rollback | connection 0 |
2025-08-21 23:14:40.347 [Thread-2] ERROR i.s.r.d.exec.AbstractDMLBaseExecutor - execute executeAutoCommitTrue error:Global lock wait timeout
io.seata.rm.datasource.exec.LockWaitTimeoutException: Global lock wait timeout
at io.seata.rm.datasource.exec.LockRetryController.sleep(LockRetryController.java:66)
at io.seata.rm.datasource.ConnectionProxy$LockRetryPolicy.doRetryOnLockConflict(ConnectionProxy.java:364)
at io.seata.rm.datasource.exec.AbstractDMLBaseExecutor$LockRetryPolicy.execute(AbstractDMLBaseExecutor.java:188)
at io.seata.rm.datasource.exec.AbstractDMLBaseExecutor.executeAutoCommitTrue(AbstractDMLBaseExecutor.java:144)
at io.seata.rm.datasource.exec.AbstractDMLBaseExecutor.doExecute(AbstractDMLBaseExecutor.java:83)
at io.seata.rm.datasource.exec.BaseTransactionalExecutor.execute(BaseTransactionalExecutor.java:124)
at io.seata.rm.datasource.exec.ExecuteTemplate.execute(ExecuteTemplate.java:153)
at io.seata.rm.datasource.exec.ExecuteTemplate.execute(ExecuteTemplate.java:60)
at io.seata.rm.datasource.PreparedStatementProxy.execute(PreparedStatementProxy.java:55)
at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:48)
at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:75)
at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)
at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)
at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
at jdk.proxy2/jdk.proxy2.$Proxy79.update(Unknown Source)
at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)
at jdk.proxy2/jdk.proxy2.$Proxy61.update(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)
at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:67)
at org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:141)
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:86)
at jdk.proxy2/jdk.proxy2.$Proxy67.updateById(Unknown Source)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:244)
at jdk.proxy2/jdk.proxy2.$Proxy68.updateById(Unknown Source)
at org.apache.seata.service.impl.StorageServiceImpl.deduct(StorageServiceImpl.java:49)
at org.apache.seata.service.impl.BusinessServiceImpl.purchase(BusinessServiceImpl.java:59)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:751)
at io.seata.spring.annotation.GlobalTransactionalInterceptor$2.execute(GlobalTransactionalInterceptor.java:208)
at io.seata.tm.api.TransactionalTemplate.execute(TransactionalTemplate.java:128)
at io.seata.spring.annotation.GlobalTransactionalInterceptor.handleGlobalTransaction(GlobalTransactionalInterceptor.java:205)
at io.seata.spring.annotation.GlobalTransactionalInterceptor.invoke(GlobalTransactionalInterceptor.java:175)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:751)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)
at org.apache.seata.service.impl.BusinessServiceImpl$$SpringCGLIB$$0.purchase(<generated>)
at org.apache.seata.SpringbootSeataApplication.lambda$main$0(SpringbootSeataApplication.java:40)
at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: io.seata.rm.datasource.exec.LockConflictException: get global lock fail, xid:10.180.22.20:61111:9690021082162052, lockKeys:stock_tbl:116
at io.seata.rm.datasource.ConnectionProxy.recognizeLockKeyConflictException(ConnectionProxy.java:159)
at io.seata.rm.datasource.ConnectionProxy.processGlobalTransactionCommit(ConnectionProxy.java:252)
at io.seata.rm.datasource.ConnectionProxy.doCommit(ConnectionProxy.java:230)
at io.seata.rm.datasource.ConnectionProxy.lambda$commit$0(ConnectionProxy.java:188)
at io.seata.rm.datasource.ConnectionProxy$LockRetryPolicy.execute(ConnectionProxy.java:344)
at io.seata.rm.datasource.ConnectionProxy.commit(ConnectionProxy.java:187)
at io.seata.rm.datasource.exec.AbstractDMLBaseExecutor.lambda$executeAutoCommitTrue$2(AbstractDMLBaseExecutor.java:146)
at io.seata.rm.datasource.ConnectionProxy$LockRetryPolicy.doRetryOnLockConflict(ConnectionProxy.java:356)
... 61 common frames omitted
2025-08-21 23:14:40.396 [Thread-2] INFO i.s.tm.api.DefaultGlobalTransaction - transaction 10.180.22.20:61111:9690021082162052 will be rollback
2025-08-21 23:14:40.424 [Thread-2] INFO i.s.tm.api.DefaultGlobalTransaction - transaction end, xid = 10.180.22.20:61111:9690021082162052
2025-08-21 23:14:40.424 [Thread-2] INFO i.s.tm.api.DefaultGlobalTransaction - [10.180.22.20:61111:9690021082162052] rollback status: Rollbacked
2025-08-21 23:17:15.184 [SpringContextShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated...
2025-08-21 23:17:15.186 [SpringContextShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed.
2025-08-21 23:17:15.187 [NettyClientSelector_TMROLE_1_1] INFO i.s.c.r.n.AbstractNettyRemotingClient - channel inactive: [id: 0x1444ad38, L:/100.103.26.86:59034 ! R:/10.180.22.20:61111]
2025-08-21 23:17:15.188 [NettyClientSelector_TMROLE_1_1] INFO i.s.c.r.n.NettyClientChannelManager - return to pool, rm channel:[id: 0x1444ad38, L:/100.103.26.86:59034 ! R:/10.180.22.20:61111]
2025-08-21 23:17:15.188 [NettyClientSelector_TMROLE_1_1] INFO i.s.c.rpc.netty.NettyPoolableFactory - channel valid false,channel:[id: 0x1444ad38, L:/100.103.26.86:59034 ! R:/10.180.22.20:61111]
2025-08-21 23:17:15.188 [NettyClientSelector_TMROLE_1_1] INFO i.s.c.rpc.netty.NettyPoolableFactory - will destroy channel:[id: 0x1444ad38, L:/100.103.26.86:59034 ! R:/10.180.22.20:61111]
2025-08-21 23:17:15.188 [NettyClientSelector_TMROLE_1_1] INFO i.s.c.r.n.AbstractNettyRemotingClient - ChannelHandlerContext(AbstractNettyRemotingClient$ClientHandler#0, [id: 0x1444ad38, L:/100.103.26.86:59034 ! R:/10.180.22.20:61111]) will closed
2025-08-21 23:17:15.188 [NettyClientSelector_TMROLE_1_1] INFO i.s.c.r.n.AbstractNettyRemotingClient - ChannelHandlerContext(AbstractNettyRemotingClient$ClientHandler#0, [id: 0x1444ad38, L:/100.103.26.86:59034 ! R:/10.180.22.20:61111]) will closed
2025-08-21 23:17:15.189 [NettyClientSelector_RMROLE_1_1] INFO i.s.c.r.n.AbstractNettyRemotingClient - channel inactive: [id: 0x4c3756e7, L:/100.103.26.86:59038 ! R:/10.180.22.20:61111]
2025-08-21 23:17:15.189 [NettyClientSelector_RMROLE_1_1] INFO i.s.c.r.n.NettyClientChannelManager - return to pool, rm channel:[id: 0x4c3756e7, L:/100.103.26.86:59038 ! R:/10.180.22.20:61111]
2025-08-21 23:17:15.189 [NettyClientSelector_RMROLE_1_1] INFO i.s.c.rpc.netty.NettyPoolableFactory - channel valid false,channel:[id: 0x4c3756e7, L:/100.103.26.86:59038 ! R:/10.180.22.20:61111]
2025-08-21 23:17:15.189 [NettyClientSelector_RMROLE_1_1] INFO i.s.c.rpc.netty.NettyPoolableFactory - will destroy channel:[id: 0x4c3756e7, L:/100.103.26.86:59038 ! R:/10.180.22.20:61111]
2025-08-21 23:17:15.189 [NettyClientSelector_RMROLE_1_1] INFO i.s.c.r.n.AbstractNettyRemotingClient - ChannelHandlerContext(AbstractNettyRemotingClient$ClientHandler#0, [id: 0x4c3756e7, L:/100.103.26.86:59038 ! R:/10.180.22.20:61111]) will closed
2025-08-21 23:17:15.189 [NettyClientSelector_RMROLE_1_1] INFO i.s.c.r.n.AbstractNettyRemotingClient - ChannelHandlerContext(AbstractNettyRemotingClient$ClientHandler#0, [id: 0x4c3756e7, L:/100.103.26.86:59038 ! R:/10.180.22.20:61111]) will closed
进程已结束,退出代码为 137 (interrupted by signal 9:SIGKILL)
### Ⅲ. Describe what you expected to happen
按照一般理解应该重试的时间为300ms左右,想询问这里的实现机制
### Ⅳ. How to reproduce it (as minimally and precisely as possible)
使用incubator-seata-samples-master/at-sample/springboot-mybatis-seata 仓库,并提前注入全局锁,模拟获取全局锁失败的场景
### Ⅴ. Anything else we need to know?
我们正在排查慢sql的问题,发现很多select ...for update ,这是seata at 模式在查询前镜像时执行的,想确认在并发高的情况下 全局锁竞争最多持有本地行锁的时间
### Ⅵ. Environment
客户端 jdk17 mac、服务端jdk8 centos 单节点
--
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: notifications-unsubscribe@seata.apache.org.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@seata.apache.org
For additional commands, e-mail: notifications-help@seata.apache.org
Re: [I] 客户端配置的retry-interval 好像并不准确 [incubator-seata]
Posted by "tonglsh (via GitHub)" <gi...@apache.org>.
tonglsh commented on issue #7590:
URL: https://github.com/apache/incubator-seata/issues/7590#issuecomment-3211156531
数据库本地数据:
select * from TEST_AUTH.account_tbl;
116 U100001 10000
select * from TEST_AUTH.order_tbl;
select * from TEST_AUTH.stock_tbl;
116 C00321 100
seata-server 数据库数据:
select * from SEATA5.global_table gt where XID = '10.180.22.20:61111:9690021082154650';
10.180.22.20:61111:9690021082154650 9690021082154650 6 springboot-mybatis-seata seata-framework-group spring-seata-tx 3000000 1755787728547 NULL 2025-08-21 22:48:49 2025-08-21 23:38:49
select * from SEATA5.branch_table bt where XID = '10.180.22.20:61111:9690021082154650';
9690021082154655 10.180.22.20:61111:9690021082154650 9690021082154650 NULL jdbc:dm://10.180.22.120:5236/TEST_AUTH AT 1 springboot-mybatis-seata:10.180.10.52:34984 NULL 2025-08-21 22:48:49 2025-08-21 22:48:49
9690021082154657 10.180.22.20:61111:9690021082154650 9690021082154650 NULL jdbc:dm://10.180.22.120:5236/TEST_AUTH AT 1 springboot-mybatis-seata:10.180.10.52:34984 {"skipCheckLock":true} 2025-08-21 22:48:49 2025-08-21 22:48:49
9690021082154662 10.180.22.20:61111:9690021082154650 9690021082154650 NULL jdbc:dm://10.180.22.120:5236/TEST_AUTH AT 1 springboot-mybatis-seata:10.180.10.52:34984 NULL 2025-08-21 22:48:50 2025-08-21 22:48:50
select * from SEATA5.lock_table lt where XID = '10.180.22.20:61111:9690021082154650';
jdbc:dm://10.180.22.120:5236/TEST_AUTH^^^stock_tbl^^^116 10.180.22.20:61111:9690021082154650 9690021082154650 9690021082154655 jdbc:dm://10.180.22.120:5236/TEST_AUTH stock_tbl 116 1 2025-08-21 22:48:49 2025-08-21 22:48:49
jdbc:dm://10.180.22.120:5236/TEST_AUTH^^^order_tbl^^^40 10.180.22.20:61111:9690021082154650 9690021082154650 9690021082154657 jdbc:dm://10.180.22.120:5236/TEST_AUTH order_tbl 40 1 2025-08-21 22:48:49 2025-08-21 22:48:49
jdbc:dm://10.180.22.120:5236/TEST_AUTH^^^account_tbl^^^116 10.180.22.20:61111:9690021082154650 9690021082154650 9690021082154662 jdbc:dm://10.180.22.120:5236/TEST_AUTH account_tbl 116 1 2025-08-21 22:48:50 2025-08-21 22:48:50
--
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: notifications-unsubscribe@seata.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@seata.apache.org
For additional commands, e-mail: notifications-help@seata.apache.org
Re: [I] 客户端配置的retry-interval 好像并不准确 [incubator-seata]
Posted by "tonglsh (via GitHub)" <gi...@apache.org>.
tonglsh closed issue #7590: 客户端配置的retry-interval 好像并不准确
URL: https://github.com/apache/incubator-seata/issues/7590
--
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: notifications-unsubscribe@seata.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@seata.apache.org
For additional commands, e-mail: notifications-help@seata.apache.org
Re: [I] 客户端配置的retry-interval 好像并不准确 [incubator-seata]
Posted by "tonglsh (via GitHub)" <gi...@apache.org>.
tonglsh commented on issue #7590:
URL: https://github.com/apache/incubator-seata/issues/7590#issuecomment-3211231309
如果有人知道这个机制是什么导致的,时间开销花费在哪里,欢迎解答
--
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: notifications-unsubscribe@seata.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@seata.apache.org
For additional commands, e-mail: notifications-help@seata.apache.org
Re: [I] 客户端配置的retry-interval 好像并不准确 [incubator-seata]
Posted by "tonglsh (via GitHub)" <gi...@apache.org>.
tonglsh commented on issue #7590:
URL: https://github.com/apache/incubator-seata/issues/7590#issuecomment-3211216209
我又模拟了在重试获取全局锁时的本地锁竞争情况,发现此时seata的本地锁是循环间隔持有的,在间隙依然可以被别的事务加锁,并不会一直持有导致本地锁阻塞,我的问题解决了,所以我关闭这个issue吧
--
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: notifications-unsubscribe@seata.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@seata.apache.org
For additional commands, e-mail: notifications-help@seata.apache.org
Re: [I] 客户端配置的retry-interval 好像并不准确 [incubator-seata]
Posted by "tonglsh (via GitHub)" <gi...@apache.org>.
tonglsh commented on issue #7590:
URL: https://github.com/apache/incubator-seata/issues/7590#issuecomment-3211194515
实际上参数配置是生效了的,在配置了retry-interval: 1000 明显增大了重试间隔,但是配置的较小时,比如配置1ms最低间隔也有100ms,可能与我本机的性能有关,也就是我计算因竞争全局锁而持有的本地锁时常的算法有问题
--
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: notifications-unsubscribe@seata.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@seata.apache.org
For additional commands, e-mail: notifications-help@seata.apache.org