修了7天都修不好的bug,最后靠一块鼠标垫解决了。这不是段子,是知乎上一个被反复点赞的真实经历。有人被一个bug折磨一周以上,有人查了一年才找到原因,而根因往往不在代码里。 这些故事来自知乎问题"你被哪个后来知道很奇葩的BUG困扰过一周以上"。几位高赞答主的经历拼在一起,几乎是一部"排查方向全错"的合集。 服务器卡顿,领导放了个鼠标垫 一位答主给客户配服务器,第二天客户反馈卡得厉害。远程维护一次,没解决。把服务器拿回公司,给供应商打电话咨询调试,一切正常,又送回客户公司。 第二天客户还是说卡。答主带着供应商上门,直接把服务器拆了检查硬件,硬件完好,问题依旧。客户继续要求维修,最后领导背着笔记本亲自出马,半天时间解决。 答主问怎么解决的,领导回答:给他们放了个鼠标垫。 另一位数通行业的答主遇到的情况类似。公司机房每隔三天就卡死一次,机器是新的,不是老化,规律得不可思议。查了很多次都找不到问题。后来意外发现,保洁阿姨三天来清洁一次,会把挡道的线缆拔下来,扫完再插回去。更巧的是,她居然没有插错,否则早就暴露了。 24TB硬盘跑不满速,问题出在风扇 2024年国庆后,一位答主所在部门进了一批WD 24TB容量的硬盘做磁阵。硬盘到货后一块块插进去,做完初始化就上线用了。 上线后发现读写速度上不去,只有供应商承诺速度的50%左右。单块硬盘抽出来测试都是满速,插进磁阵整体测试就不行。找了好多人,包括厂商供应商来看,都没找出问题。折腾了半个月,部门卡着没结款,说问题不解决就退货。 转机出现在一天早上。答主导数据集时发现磁阵速度好了一些,达到标称速度的80%左右,同时收到告警:磁阵的风扇挂了一个。他去机房换了个风扇,回来后速度又降下来了。 他跑到机房,把磁阵的风扇拔了一半,一测试,速度神奇地恢复到满速。风扇只有一半,单个风扇转速就会提升。由此确定,问题与风扇的数量或转速有关。 把运维喊来调试多次,最终确定把风扇转速调整到最高转速的85%左右,磁阵读写速度就不受影响。原来风扇是动态转速,开机后大约在60%左右。 后来答主和华为存储的工程师交流,对方提到他们有个存储实验室,注意到20TB以上的磁盘,空气传导加风扇噪声会影响磁盘的磁头定位,进而影响读写效率,长时间还会导致磁盘故障率高。解决方案是要么用20TB以下的磁盘,要么重新设计散热架构,用低速大扇叶风扇减少风扇数量、降低噪音,或者避开那个特定频率范围,比如把6个小的换成4个大的。 订单偶尔慢几秒,查了一年 一位答主做交易管理系统,提交订单都是毫秒级,但偶尔一个订单要花好几秒钟,下午出现比较多。因为是偶尔出现,再去查log也找不到原因,断断续续查了一年没结果。 后来交给这位答主,看代码没问题,测试负载比实际交易大10倍也无法再现。搞了一个星期,他决定连到生产环境查。不能直接在生产机器上跑测试,就在生产环境备用机上跑,备用机和生产环境共享SAN硬盘。 结果每隔1分钟就出现一次。他问领导,有什么东西在生产环境每隔一分钟跑一次。领导一拍脑袋说,有,运维团队写了一个监控程序,每一分钟搜索一下log文件,看看有没有报警。 事后查明,运维团队自己写的脚本分析log,从头搜到尾,搜完把结果写入文件,防止下次重复报警,一写就占用硬盘好几秒。数据库也要写硬盘,写不了只好等。偶尔发生,是因为订单和写文件要同时发生才会延迟;下午发生多,因为到下午log文件大,延时就出现了。 这位答主的总结是:根本原因,这个bug都不在我们的程序里,怎么查得出。 测试说网络不行,其实是流量卡没流量了 还有一位答主回忆,男友是某新能源汽车大厂负责车机的IT工程师。上周六晚上他忽然要加班,遛狗遛到一半也要走到一边打工作电话,回家游戏也不打了,一直看代码。 他说测试反馈网络不行、出错了,需要找原因。部门好几个人又开始打电话,飞书群聊里好多头像,很多个人说话,空气中弥漫着焦虑。最后一个电话打了快半小时,折腾到将近十二点,终于找到原因:测试的流量卡没流量了。 还有一个更让人哭笑不得的。一位答主某个周一状态特别好,一口气写了六个小时代码,午饭都没吃。编译结束,只有一个bug。他以为本周工作就此结束,结果接下来的五天怎么也找不着那条bug,从头到尾重新捋了一遍,甚至写了三个副本,bug越来越多。双休两天都睡不着,在湖边边走边想,怎么也想不着,甚至还去办公室对着电脑发呆了两小时。 第二周周一早,他泡着咖啡,拿着面包,正在思考周报咋写,点开原文件,上下一看,这里怎么少了个右括号。添上,编译,编译成功。他师父斜着眼看着他,你是不是故意摸了一周的鱼? 特别