看了别人写的内核bug修复历程,心血来潮也想写点什么,最近一直在开发公司的四代机的项目,修了不少bug但大都是关于dpdk与vdpa的。还好找到了一个存货,两个月前修了一个内核bug并且做了记录。其实我修bug从来不做记录,因为修得多了也没啥兴趣了,就是枯燥的半体力劳动,啥体力劳动?手指运动呗:)。但,这个bug是个例外,我做了笔记还记得很详细,为啥呢?哈哈,因为它让我推翻了我自己的结论,就像一个法官断错了案,那个耿耿于怀啊。下面故事开始了:
---------------------------------------------------------------------------------------------------------------------------
公有云线上环境的一个节点踏踏实实勤勤恳恳工作一年多以后突然宕机了!coredump显示处于UN状态的进程有385个。对这385个进程按执行顺序做个排序,有6个进程hang了6天多的时间。
[ 0 19:06:45.856] [UN] PID: 142120 TASK: ffff883990f1dee0 CPU: 3 COMMAND: "worker"
[ 0 19:06:45.859] [UN] PID: 122914 TASK: ffff880884a03f40 CPU: 34 COMMAND: "worker"
[ 0 19:06:45.855] [UN] PID: 63190 TASK: ffff885f6d139fa0 CPU: 1 COMMAND: "worker"
[ 0 19:06:46.009] [UN] PID: 1226 TASK: ffff88069aa3cf10 CPU: 16 COMMAND: "mn_agent_app"