加入收藏 | 设为首页 | 会员中心 | 我要投稿 网站开发网_盐城站长网 (https://www.0515zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

一个罕见的MySQL redo死锁问题排查及解决过程

发布时间:2021-01-08 02:34:51 所属栏目:站长百科 来源:网络整理
导读:副标题#e# 《一个罕见的MySQL redo死锁问题排查及解决过程》要点: 本文介绍了一个罕见的MySQL redo死锁问题排查及解决过程,希望对您有用。如果有疑问,可以联系我们。 作者:张青林,腾讯云布道师、MySQL架构师,隶属腾讯TEG-基础架构部-CDB内核开发团队,专

由问题二的分析过程可以得出某线程在 log_flush_order_mutex_exit 的退出过程没有将 Thread 446 唤醒,那么就顺着这个函数找,看它如何唤醒其它本程的,在没有办法的时候也只有这样一步一步的分析代码,希望有些收获,随着函数调用的不断深入,将目光定在了 mutex_exit_func 上,函数中的注释引起了我的注意:

从上面的注释中可以得到两点信息:

  • 由于 memory barrier 的存在,mutex_get_waiters & mutex_reset_lock_word 的调用顺序可能与执行顺序相反,这种情况下会引起 hang 问题;
  • 专门写了一个函数 sync_arr_wake_threads_if_sema_free() 来解决上述问题.

(编辑:网站开发网_盐城站长网 )

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!