突然收到告警,提示mysql宕机了,该服务器是从库。于是尝试登录服务器看看能否登录,发现可以登录,查看mysql进程也存在,尝试登录提示

ERROR 1040 (HY000): Too many connections

最大连接数设置的3000,怎么会连接数不够了呢。于是使用gdb修改一下最大连接数:

gdb -p $(cat pid_mysql.pid) -ex "set max_connections=5000" -batch

修改以后可以登录了,于是show processlist看看是啥情况:

发现监控程序执行show slave status都被卡住了,最后把最大连接数用完,导致Too many connections。复制卡在了Waiting for commit lock。查阅资料以后发现是触发了bug。https://bugs.mysql.com/bug.php?id=70307,改bug在5.6.23已经修复。我的版本是 5.6.17

mysql> SELECT a.trx_id, trx_state, trx_started, b.id AS thread_id, b.info, b.user, b.host, b.db, b.command, b.state FROMinformation_schema.`INNODB_TRX` a, information_schema.`PROCESSLI

ST` bWHERE a.trx_mysql_thread_id = b.id ORDER BYa.trx_started;+----------+-----------+---------------------+-----------+------+-------------+------+------+---------+-------------------------+

| trx_id | trx_state | trx_started | thread_id | info | user | host | db | command | state |

+----------+-----------+---------------------+-----------+------+-------------+------+------+---------+-------------------------+

| 51455154 | RUNNING | 2017-08-02 02:20:07 | 6404 | NULL | system user | | NULL | Connect | Waiting for commit lock |

+----------+-----------+---------------------+-----------+------+-------------+------+------+---------+-------------------------+

1 row in set (0.03 sec)

可以看到在凌晨2点左右的时候卡住的,突然发现凌晨2点这个时候正是xtrabackup备份数据的时间。xtrabackup备份的时候执行flushs tables with read lock和show slave status会有可能和SQL Thread形成死锁,导致SQL Thread一直被卡主。原因是SQL Thread的DML操作完成之后,持有rli->data_lock锁,commit的时候等待MDL_COMMIT,而flush tables with read lock之后执行的show slave status会等待rli->data_lock;修复方法是rli->data_lock锁周期只在DML操作期间持有。

stop slave没有用,正常停止没有用,最后只能kill -9,问题还是比较严重的,解决的方法就是升级新版本。

mysql 5.6 bug_MySQL 5.6的一个bug引发的故障相关推荐

  1. 『转』度百死去飞秋一个BUG引发的血案

    作了一篇文章度百死去飞秋一个BUG引发的血案,昨天,度百死去的美国客户发邮件给我,说我的软件出问题了,我查来查去,发现居然是服务器上一个目录无法删除,一删除就报 cannot read from th ...

  2. 查看redis缓存大小_一个 bug 引发了服务器崩溃,对应 redis 的 key 回收原理你清楚了吗?...

    1 背景 项目中使用了 redis 做旁路缓存.读请求到来时,有以下操作:1.检查缓存,有则返回2.没有则读取数据库,将结果回写到缓存中. 写请求到来时,有以下操作:1.更新数据库 2.更新缓存(实际 ...

  3. 一个bug引发的人生感悟

    文章目录 问题现象 原因分析 节目id和节目路径映射关系 uuid数据 流程分析 发包机 解决办法 感悟 问题现象 发包机 结果csv文件,不同progid指向同一视频路径问题 原因分析 节目id和节 ...

  4. std::uniform_real_distribution的一个bug引发的服务器崩溃

    文章目录 前言 崩溃问题 std::uniform_real_distribution<> 的bug bug 重现方法 总结 前言 近日发生一次线上游戏服务器宕机问题,通过日志和core文 ...

  5. 一个bug引发的血案(大爆炸)

    据传,在冷战时期,CIA曾成功向前苏联"输出"一个有设计缺陷的控制软件,该软件用来控制天然气主管道.(KGB从一家加拿大公司窃取该软件.)那个植入的Bug最终引发了1982年的西伯 ...

  6. 一个BUG引发的灾难:ORA-00600 [kjmchkiseq:!seq]

    对于打工人可能最痛苦的就是被告知的故障,数据库有监控.告警.每天巡检,自己做了一系列数据库的"安保"工作,本以为可以万无一失,中午在安心的睡觉中,被人告知数据库crash了.当时的 ...

  7. mysql第三章关系模型_一个MySQL关系模型只有三个关系(二维表)组成。_学小易找答案...

    [判断题]DELETE语句功能是对表中所有记录或满足条件的记录进行批量删除. [填空题]The computer's entire ____ was on a single board. [单选题]下 ...

  8. 关于MySQL count(distinct) 逻辑的另一个bug

    背景          上一篇博文(链接)介绍了count distinct的一个bug.解决完以后发现客户的SQL语句仍然返回错误结果(0), 再查原因,发现了另外一个bug.也就是说,这个SQL语 ...

  9. MySQL 5.7最新版本的2个bug

    好久没写博客了,都长草了.新业务上了5.7没遇到什么问题,虽然没遇到什么问题,但不代表没有问题,我有个习惯就是没事就喜欢逛逛percona的Blog,于是看到目前最新GA版本5.7.17的2个bug, ...

最新文章

  1. 2021年大数据Kafka(八):Kafka如何保证数据不丢失
  2. [Hive]Union使用指南
  3. 阿里巴巴消息系统架构与变迁--转载
  4. SpringMVC框架结构以及架构流程
  5. 微信小程序项目实战知识点总结(swiper组件自适应高度,自定义弹出层,悬浮按钮,虚拟键盘)...
  6. python辅助脚本教程_微信跳一跳python辅助脚本实例分享
  7. 《你的灯亮着吗》 读书笔记三
  8. win11怎么解除网络限制 windows11解除网络限制的设置方法
  9. LeetCode讲解视频博主链接
  10. springboot系列二、springboot项目搭建
  11. FastRVC功能记录
  12. 教务管理系统数据字典mysql_数据库课程设计报告--教务管理系统设计
  13. 什么是GNSS测试?如何进行GNSS测试?
  14. 移动硬盘插入提示需要格式化RAW_移动硬盘数据恢复
  15. 超级玛丽3通关指南+隐藏点整理
  16. JAVA蓝桥杯分解质因数
  17. CentOS防攻击设置
  18. ajax调用fastreport,使用Ajax更新ASP.Net MVC项目中的报表对象
  19. go语言csv包_golang导出csv
  20. nlp中文本相似度匹配

热门文章

  1. hdu 5919--Sequence II(主席树--求区间不同数个数+区间第k大)
  2. NSIS制作安装包实例
  3. OpenGL---GLUT教程(一) GLUT简介,体系
  4. Bailian2727 还是采药问题【模拟】
  5. HDU2546 饭卡【贪心+0-1背包】
  6. POJ3981 字符串替换【水题】
  7. 《程序设计技术》第四章例程
  8. π-Algorithmist分类题目(2)
  9. NUC1419 位操作【位运算+STL】
  10. 只属于你我的共同记忆