看下你的集群状态都正常不,obd cluster display XXX
您好,我是OB死锁检测模块的作者,在4.3版本之前,死锁检测功能还处于不完善的状态(时间和精力投入在其他模块的开发重构上,因而在4.3版本之前没有精力顾及),仅能检测基本的死锁。
在您所遇到的这个场景中,死锁检测应该是正常工作的,而之所以在一个session检测到死锁之后另外一个session没有继续执行,很可能因为您使用的是Oracle模式的租户。
OB工作在Oracle模式下时,探测到死锁后的行为同Oracle保持一致:即只回滚语句,但是不回滚事务,需要用户手动回滚事务。
OB工作在Mysql模式下时,探测到死锁后的行为同Mysql保持一致:即直接回滚事务。
两种行为都是可理解的,Oracle采用了更保守的做法,需要用户去判断,而Mysql采用了更激进的做法,但大多数场景下更符合用户的预期。OB兼容它们的行为。
我这个是MySQL租户的呢,确实检测到了死锁,但是没有回滚
奇怪了,我这测了好几次都没有复现你那问题
我也是试了好几次,都是这样,和你发的不一样,真的奇怪
有毒,哈哈哈,没头绪了,复现不来
复现了多次还是一样的情况
我找上面那个作者看看。
麻烦复现一下,然后将集群日志都压缩传一下
你录个屏吧,传上来
你再把过程中的集群日志都打包上传,大家瞅瞅
录屏传不了
我在另一个帖子从代码里面有点疑问,可能是类似的情况,就是好像目前死锁检测系统里面没有使用activate的操作,目前只能通过定期重试发现自己所需资源可用吗
ob4.2死锁检测与解除疑问 - 社区问答- OceanBase社区-分布式数据库
持续关注
模拟之后打包了日志,麻烦帮忙看看呢