funky-eyes opened a new issue, #7004:
URL: https://github.com/apache/incubator-seata/issues/7004

   <!-- Please do not use this issue template to report security 
vulnerabilities but refer to our [security 
policy](https://github.com/seata/seata/security/policy). -->
   
   - [ ] I have searched the [issues](https://github.com/seata/seata/issues) of 
this repository and believe that this is not a duplicate.
   
   ### Ⅰ. Issue Description
   
   
908毫秒的时候全局事务已经在另一个线程里完成,910的时候还在回滚其中一个分支,明显的并行回滚导致,并且日志里回滚了2次6882078649837270974,该事务为一个时间较长的事务,时间大概为4分钟,导致定时任务会自动将rollbacking超过2分10秒的任务拉起来重试,而此时整好决议,所以会出现并发性回滚,而在raft下由于并发,会导致对应的globalsession已经被删除了,而接着发了一个branchsession操作相关的同步消息,导致出现npe
   At 908 milliseconds, the global transaction was already completed in another 
thread, while at 910 milliseconds, one of the branches was still being rolled 
back. This clearly indicates parallel rollbacks. Additionally, the log shows 
that the transaction with ID 6882078649837270974 was rolled back twice. This 
transaction was a long-running one, lasting approximately 4 minutes, which 
caused the scheduled task to automatically retry tasks that had been in a 
'rollbacking' state for more than 2 minutes and 10 seconds. By this time, the 
decision was already made, resulting in concurrent rollbacks. Under Raft, due 
to this concurrency, the corresponding global session was already deleted, and 
a branch session operation-related synchronization message was sent, which led 
to an NPE (NullPointerException)
   ```
   2024-11-12 21:34:16.911 ERROR --- [JRaft-FSMCaller-Disruptor-0] 
[org.apache.seata.server.cluster.raft.RaftStateMachine] 
   [onExecuteRaft] []: Message synchronization failure: Cannot invoke 
"org.apache.seata.server.session.GlobalSession.getBranch(long)" because 
"globalSession" is null, msgType: RELEASE_BRANCH_SESSION_LOCK
   ==>
   java.lang.NullPointerException: Cannot invoke 
"org.apache.seata.server.session.GlobalSession.getBranch(long)" because 
"globalSession" is null
        at 
org.apache.seata.server.cluster.raft.execute.lock.BranchReleaseLockExecute.execute(BranchReleaseLockExecute.java:35)
        at 
org.apache.seata.server.cluster.raft.execute.lock.BranchReleaseLockExecute.execute(BranchReleaseLockExecute.java:28)
        at 
org.apache.seata.server.cluster.raft.RaftStateMachine.onExecuteRaft(RaftStateMachine.java:333)
        at 
org.apache.seata.server.cluster.raft.RaftStateMachine.onApply(RaftStateMachine.java:174)
        at 
com.alipay.sofa.jraft.core.FSMCallerImpl.doApplyTasks(FSMCallerImpl.java:597)
        at 
com.alipay.sofa.jraft.core.FSMCallerImpl.doCommitted(FSMCallerImpl.java:561)
        at 
com.alipay.sofa.jraft.core.FSMCallerImpl.runApplyTask(FSMCallerImpl.java:467)
        at 
com.alipay.sofa.jraft.core.FSMCallerImpl.access$100(FSMCallerImpl.java:73)
        at 
com.alipay.sofa.jraft.core.FSMCallerImpl$ApplyTaskHandler.onEvent(FSMCallerImpl.java:150)
        at 
com.alipay.sofa.jraft.core.FSMCallerImpl$ApplyTaskHandler.onEvent(FSMCallerImpl.java:142)
        at 
com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:137)
        at java.base/java.lang.Thread.run(Thread.java:1583)
   <==
   ```
   
   
   2024-11-12 21:34:16.892  INFO --- [SyncProcessing_1_1] 
[org.apache.seata.server.coordinator.DefaultCore] [lambda$doGlobalRollback$3] 
[193.193.193.37:8097:6882078649837270973]: Rollback branch transaction 
successfully, xid = 193.193.193.37:8097:6882078649837270973 branchId = 
6882078649837270974
   
   2024-11-12 21:34:16.908  INFO --- [SyncProcessing_1_1] 
[org.apache.seata.server.coordinator.DefaultCore] [doGlobalRollback] 
[193.193.193.37:8097:6882078649837270973]: Rollback global transaction 
successfully, xid = 193.193.193.37:8097:6882078649837270973.
   2024-11-12 21:34:16.910  INFO --- [ServerHandlerThread_1_19_500] 
[org.apache.seata.server.coordinator.DefaultCore] [lambda$doGlobalRollback$3] 
[193.193.193.37:8097:6882078649837270973]: Rollback branch transaction 
successfully, xid = 193.193.193.37:8097:6882078649837270973 branchId = 
6882078649837270974
   
   ### Ⅱ. Describe what happened
   
     If there is an exception, please attach the exception trace:
   
   ```
   Just paste your stack trace here!
   ```
   
   
   ### Ⅲ. Describe what you expected to happen
   
   
   ### Ⅳ. How to reproduce it (as minimally and precisely as possible)
   
   1. xxx
   2. xxx
   3. xxx
   
   Minimal yet complete reproducer code (or URL to code):
   
   
   
   ### Ⅴ. Anything else we need to know?
   
   
   ### Ⅵ. Environment:
   
   - JDK version(e.g. `java -version`):
   - Seata client/server version:  
   - Database version:
   - OS(e.g. `uname -a`):
   - Others:


-- 
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

Reply via email to