apache / apache/incubator-seata

seata序列化问题用kryo失败,改数据库字段可以实现回滚,但是项目以上线修改字段不可能

Open
#4,526 4 comments 0 reactions 0 assignees View on GitHub
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)]

![1649228709(1)](https://user-images.githubusercontent.com/103100276/161915551-348cccc9-242e-484c-8c85-bbbe4f547c60.jpg)
![Uploading 1649228709(1).jpg…]()

Contributor guide

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.