wxrqforever opened a new issue, #7090: URL: https://github.com/apache/incubator-seata/issues/7090
一、背景 有两个seata-server实例,客户端业务应用实例一个,故意在tcc模式中commit方法中抛出了一个异常 ``` public void commit(BusinessActionContext actionContext) { int I = 1/0; } ``` 此时db中global_table全局事务的status字段为3,server会进行事务提交的重试,这个时候我发现客户端应用收到了两个seata-server分别发来的重试请求。 server端日志如下 实例a: 12:00:32.264 INFO --- [ RetryCommitting_1_1] [.core.rpc.netty.ChannelManager] [ getChannel] [xxxxxx:2387511350085918818] : Choose [id: 0x6613e85e, L:/xxxxxx:9527 - R:/xxxxxx:54702] on the same IP[xxxxxx] as alternative of xxxxxx: xxxxxx:46452 12:00:32.442 INFO --- [ batchLoggerPrint_1_1] [ocessor.server.BatchLogHandler] [ run] [] : receive msg[single]: BranchCommitResponse{xid='xxxxxx:2387511350085918818', branchId=2387511350085918823, branchStatus=PhaseTwo_CommitFailed_Retryable, resultCode=Success, msg='null'}, clientIp: xxxxxx, vgroup: xxxxxx 12:00:32.442 ERROR --- [ RetryCommitting_1_1] [server.coordinator.DefaultCore] [bda$doGlobalCommit$1] [11.166.244.1:9527:2387511350085918818] : Committing global transaction[11.166.244.1:9527:2387511350085918818] failed, caused by branch transaction[2387511350085918823] commit failed, will retry later. 实例b: 12:00:24.130 INFO --- [ batchLoggerPrint_1_1] [ocessor.server.BatchLogHandler] [ run] [] : receive msg[single]: BranchCommitResponse{xid='xxxxxx:2387511350085918818', branchId=2387511350085918823, branchStatus=PhaseTwo_CommitFailed_Retryable, resultCode=Success, msg='null'}, clientIp: 11.151.193.164, vgroup: netbuild 12:00:24.130 ERROR --- [ RetryCommitting_1_1] [server.coordinator.DefaultCore] [bda$doGlobalCommit$1] [xxxxxx:9527:2387511350085918818] : Committing global transaction[xxxxxx:2387511350085918818] failed, caused by branch transaction[2387511350085918823] commit failed, will retry later. server端配置如下: #Transaction rule configuration, only for the server server.recovery.committingRetryPeriod=60000 server.recovery.asynCommittingRetryPeriod=1000 server.recovery.rollbackingRetryPeriod=60000 server.recovery.timeoutRetryPeriod=1000 server.maxCommitRetryTimeout=-1 server.maxRollbackRetryTimeout=-1 server.rollbackRetryTimeoutUnlockEnable=false server.distributedLockExpireTime=10000 server.session.branchAsyncQueueSize=5000 server.session.enableBranchAsyncRemove=false server.enableParallelRequestHandle=true server.enableParallelHandleBranch=false server.applicationDataLimit=64000 server.applicationDataLimitCheck=false 二、问题 我的疑问在于在多个seata-server的场景下,tc发起重试,不是应该仅有一个tc实际生效发起重试,这里是多个server均发起了重试请求是符合预期的吗?分布式锁控制tc的重试在这个场景是不生效的吗? -- 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-unsubscr...@seata.apache.org.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: notifications-unsubscr...@seata.apache.org For additional commands, e-mail: notifications-h...@seata.apache.org