1
zhengzhongzhao OP @lsk569937453 : mysql 故障导致即使 mysql 恢复了,但是后端应用连不上(控制台没有任何连数据库的报错),重启后端就恢复。
线下用阿里的混沌工具一点一点的模拟故障,终于在网络丢包率达到 85%时,故障重现。 原来是后端连 mysql 的时候没有设置超时时间,导致连接的时候丢包了,因为没有连接超时,所以程序就卡在这里了。 |
2
zhengzhongzhao OP @syrinx :
汇编代码,编译正常,逻辑也没有问题,但是就是无法执行完成到下一步。 给我的主管一位博士看过,他也说没问题。 我的博士主管第二天一大早丢了一段代码给我,让我试试,我说逻辑不是一样嘛,结果 PASS 事后问博士原因,博士说他也不知道,但是他知道如果这样不行,那就换个姿势试试 |
4
ryd994 2023-08-20 09:52:55 +08:00 via Android 1
这种事情找个有经验的运维一看就能看出来。或者触发一个 crash dump 就能看出来
底层的 bug 才是见鬼。发送方抓包包路由器上硬件抓包都显示包发出来了。但是接收方就是没收到。 如果你以为是线的问题,那肯定不是,因为一样的发送方接收方,其他包都是正常的,唯独这一类包收不到。 如果你以为是防火墙问题,那肯定不是,因为用网卡厂家的工具从固件上抓包,也是一样收不到。 如果你以为是 RSS 问题,那肯定不是,因为对比正常的包和丢了的包,包括端口号在内的所有报头都是一模一样 如果你以为是性能问题,那肯定不是,因为这一类包很稳定的就是收不到,另一类包一样的端口很稳定的就是能收到。 如果你以为是硬件问题,那肯定不是,我们几百台机器,随机就有几台出问题。但是重启程序又正常了。不知道什么时候哪台就会开始发疯。 如果你以为是程序 bug ,那肯定不是,这个底层程序我们已经用了大半年了,就算上层出问题,底层平台不会受影响。 现在找硬件厂商,但是厂商的人也还研究出什么问题。最见鬼的是死活不能复现。实验室里无法复现也就算了。生产环境里也无法稳定复现。加了 debug 日志的程序,替换到生产环境的任何一台机器上,仍然不复现。 所以我们只能把 debug 日志部署到整个集群,真就是守株待兔。 还不够恐怖?那再加一条:计划月底上线,上线不了公司要赔钱。 |