[seata]我发现无论第一阶段还是二阶段,程序假如假死在某个线程处,然后没有处理完线程,那些undolog,gloabl,lock对应的表都会存在一些脏数据,需要手动删除

2024-02-21 400 views
8

我发现无论第一阶段还是二阶段,程序假如假死在某个线程处,然后没有处理完线程,那些undolog,gloabl,lock对应的表都会存在一些脏数据,需要手动删除,,重启服务也不行

回答

5

什么版本?undolog是存在这个情况,因为是异步放在本地线程队列里就返回了,如果还没执行删除应用以外宕机就会存在,但是7天后会被无差别删除 而global要看下状态,lock是肯定会被删除,代码里写死了只有lock删除成功才可能删除global和branch

4

什么版本?undolog是存在这个情况,因为是异步放在本地线程队列里就返回了,如果还没执行删除应用以外宕机就会存在,但是7天后会被无差别删除 而global要看下状态,lock是肯定会被删除,代码里写死了只有lock删除成功才可能删除global和branch

1.3.0,我是本地调试,,然后走到某个断点,,就关闭了程序,断点走到了这里 我就把idea调试服务关闭了 image

image image image image

1

1.3可能会存在,建议升级1.5及以上,tc侧升级即可,client顶多残留undolog不影响

9

还有你截图的是status=1,超时时间没到怎么残留了,你关了应用后是要等超时回滚的,因为tm下线了没主动发起决议,只能等待tc超时决议

1

1.3可能会存在,建议升级1.5及以上,tc侧升级即可,client顶多残留undolog不影响

我的springcloudalibaba是2.2.6,如果seata升级到1.5会有影响吗

4

理论上没影响