Skip to content

2019 02 28

事故类型

异常报警

事故过程

  1. 下午 17:50 左右,王苗发现使用测试账号下单后无法生产采购任务
  2. 发现消息队列堆积
  3. 发现 A1-task-worker 有多个 kill_mysql_proc 进程,说明杀进程脚本未正常工作
  4. 杀掉 kill_mysql_proc 脚本进程后,手动执行脚本
  5. 消息队列堆积数量开始下降
  6. 时候发现一个死锁:

事故时长

1 hours

事故原因

  1. 在昨天DEBUG消息队列时候,关掉了消息队列脚本并忘了再打开。导致事故发生后约半小时才发现问题。
  2. 出现了死锁 (pymysql.err.InternalError) (1213, 'Deadlock found when trying to get lock; try restarting transaction')
  3. 杀进程脚本中有一个bash语法bug,导致未正常工作

解决思路

在使用 crontab 时使用 flock -n 避免同时启动多个杀进程脚本