2019 02 28
事故类型
异常报警
事故过程
- 下午 17:50 左右,王苗发现使用测试账号下单后无法生产采购任务
- 发现消息队列堆积
- 发现 A1-task-worker 有多个 kill_mysql_proc 进程,说明杀进程脚本未正常工作
- 杀掉 kill_mysql_proc 脚本进程后,手动执行脚本
- 消息队列堆积数量开始下降
- 时候发现一个死锁:
事故时长
1 hours
事故原因
- 在昨天DEBUG消息队列时候,关掉了消息队列脚本并忘了再打开。导致事故发生后约半小时才发现问题。
- 出现了死锁 (pymysql.err.InternalError) (1213, 'Deadlock found when trying to get lock; try restarting transaction')
- 杀进程脚本中有一个bash语法bug,导致未正常工作
解决思路
在使用 crontab 时使用 flock -n 避免同时启动多个杀进程脚本