apache / apache/incubator-seata
seata序列化问题用kryo失败,改数据库字段可以实现回滚,但是项目以上线修改字段不可能
- Dominant language
- Java
- Stars
- 26k
- Forks
- 8.8k
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 4
Description
服务方一直报错回滚失败:
15:03:34.196 [rpcDispatch_RMROLE_1_1_24] INFO i.s.c.r.p.c.RmBranchRollbackProcessor - [process,56] - rm handle branch rollback process:xid=192.168.10.7:8091:7611325311590346893,branchId=7611325311590346894,branchType=AT,resourceId=jdbc:mysql://192.168.10.246:8066/health_data,applicationData=null
15:03:34.197 [rpcDispatch_RMROLE_1_1_24] INFO i.s.r.AbstractRMHandler - [doBranchRollback,123] - Branch Rollbacking: 192.168.10.7:8091:7611325311590346893 7611325311590346894 jdbc:mysql://192.168.10.246:8066/health_data
15:03:34.213 [rpcDispatch_RMROLE_1_1_24] INFO i.s.r.d.DataSourceManager - [info,41] - branchRollback failed. branchType:[AT], xid:[192.168.10.7:8091:7611325311590346893], branchId:[7611325311590346894], resourceId:[jdbc:mysql://192.168.10.246:8066/health_data], applicationData:[null]. reason:[Branch session rollback failed and try again later xid = 192.168.10.7:8091:7611325311590346893 branchId = 7611325311590346894 Encountered unregistered class ID: -34643987
Serialization trace:
sqlUndoLogs (io.seata.rm.datasource.undo.BranchUndoLog)]
15:03:34.214 [rpcDispatch_RMROLE_1_1_24] INFO i.s.r.AbstractRMHandler - [doBranchRollback,131] - Branch Rollbacked result: PhaseTwo_RollbackFailed_Retryable
15:03:34.965 [rpcDispatch_RMROLE_1_2_24] INFO i.s.c.r.p.c.RmBranchRollbackProcessor - [process,56] - rm handle branch rollback process:xid=192.168.10.7:8091:7611325311590346893,branchId=7611325311590346894,branchType=AT,resourceId=jdbc:mysql://192.168.10.246:8066/health_data,applicationData=null
15:03:34.966 [rpcDispatch_RMROLE_1_2_24] INFO i.s.r.AbstractRMHandler - [doBranchRollback,123] - Branch Rollbacking: 192.168.10.7:8091:7611325311590346893 7611325311590346894 jdbc:mysql://192.168.10.246:8066/health_data
15:03:34.970 [rpcDispatch_RMROLE_1_2_24] INFO i.s.r.d.DataSourceManager - [info,41] - branchRollback failed. branchType:[AT], xid:[192.168.10.7:8091:7611325311590346893], branchId:[7611325311590346894], resourceId:[jdbc:mysql://192.168.10.246:8066/health_data], applicationData:[null]. reason:[Branch session rollback failed and try again later xid = 192.168.10.7:8091:7611325311590346893 branchId = 7611325311590346894 Encountered unregistered class ID: -34643987
Serialization trace:
sqlUndoLogs (io.seata.rm.datasource.undo.BranchUndoLog)]
15:03:34.970 [rpcDispatch_RMROLE_1_2_24] INFO i.s.r.AbstractRMHandler - [doBranchRollback,131] - Branch Rollbacked result: PhaseTwo_RollbackFailed_Retryable
15:03:35.972 [rpcDispatch_RMROLE_1_3_24] INFO i.s.c.r.p.c.RmBranchRollbackProcessor - [process,56] - rm handle branch rollback process:xid=192.168.10.7:8091:7611325311590346893,branchId=7611325311590346894,branchType=AT,resourceId=jdbc:mysql://192.168.10.246:8066/health_data,applicationData=null
15:03:35.973 [rpcDispatch_RMROLE_1_3_24] INFO i.s.r.AbstractRMHandler - [doBranchRollback,123] - Branch Rollbacking: 192.168.10.7:8091:7611325311590346893 7611325311590346894 jdbc:mysql://192.168.10.246:8066/health_data
15:03:36.029 [rpcDispatch_RMROLE_1_3_24] INFO i.s.r.d.DataSourceManager - [info,41] - branchRollback failed. branchType:[AT], xid:[192.168.10.7:8091:7611325311590346893], branchId:[7611325311590346894], resourceId:[jdbc:mysql://192.168.10.246:8066/health_data], applicationData:[null]. reason:[Branch session rollback failed and try again later xid = 192.168.10.7:8091:7611325311590346893 branchId = 7611325311590346894 Encountered unregistered class ID: -34643987
Serialization trace:
sqlUndoLogs (io.seata.rm.datasource.undo.BranchUndoLog)]
15:03:36.029 [rpcDispatch_RMROLE_1_3_24] INFO i.s.r.AbstractRMHandler - [doBranchRollback,131] - Branch Rollbacked result: PhaseTwo_RollbackFailed_Retryable
15:03:36.965 [rpcDispatch_RMROLE_1_4_24] INFO i.s.c.r.p.c.RmBranchRollbackProcessor - [process,56] - rm handle branch rollback process:xid=192.168.10.7:8091:7611325311590346893,branchId=7611325311590346894,branchType=AT,resourceId=jdbc:mysql://192.168.10.246:8066/health_data,applicationData=null
15:03:36.965 [rpcDispatch_RMROLE_1_4_24] INFO i.s.r.AbstractRMHandler - [doBranchRollback,123] - Branch Rollbacking: 192.168.10.7:8091:7611325311590346893 7611325311590346894 jdbc:mysql://192.168.10.246:8066/health_data
15:03:36.970 [rpcDispatch_RMROLE_1_4_24] INFO i.s.r.d.DataSourceManager - [info,41] - branchRollback failed. branchType:[AT], xid:[192.168.10.7:8091:7611325311590346893], branchId:[7611325311590346894], resourceId:[jdbc:mysql://192.168.10.246:8066/health_data], applicationData:[null]. reason:[Branch session rollback failed and try again later xid = 192.168.10.7:8091:7611325311590346893 branchId = 7611325311590346894 Encountered unregistered class ID: -34643987
Serialization trace:
sqlUndoLogs (io.seata.rm.datasource.undo.BranchUndoLog)]

![Uploading 1649228709(1).jpg…]()
Contributor guide
Research direction
Start by reproducing the AT branch rollback failure shown in the logs and trace the Kryo deserialization of BranchUndoLog.sqlUndoLogs, focusing on the unregistered class ID. Compare the affected service and Seata serialization configuration, then verify that rollback succeeds without changing the deployed database field. No source file or test is named in the issue.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, mysql
- Domain
- databases, distributed-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 18/100