第271章 1.7万行代码没Bug,服务器偏要原地入土
档案已开启,想象力开始接管。
星辰科技的办公室里,中央空调开到了十六度,但阿哲后背的t恤还是湿了一大片。
不是热的。
是急的。
他面前的显示器上,密密麻麻的代码从第一行排到了第一万七千行,每一行他都看过,不止一遍。
有些行他看了五遍。
有些行他看了十遍。
结果呢?
屁都没找到。
阿哲把椅子往后一推,仰头盯着天花板,两只手插进头发里,狠狠地薅了一把。
几根头发被扯下来缠在指缝间,他低头看了一眼,没有任何反应,又把手插回去继续薅。
桌上摊着三本草稿纸,写满了各种内存地址、函数调用栈和数据流向图。
铅笔断了两根,橡皮擦得只剩指甲盖大小。
旁边的沈初微抬头瞄了他一眼,又低下去。
她不敢说话。
过去四十八小时,阿哲的状态可以用四个字概括——六亲不认。
谁跟他说话他咬谁。
沈初微昨天问了一句“要不要换个思路”,被阿哲回了一句“你闭嘴”,语气之冷,连空调都自叹不如。
她识趣地缩回了自己的工位,专心做自己那部分的ui适配工作,余光偶尔扫一下阿哲的后脑勺,心里发毛。
这人已经两天没正经睡觉了。
昨晚她凌晨两点回宿舍前,阿哲坐在那里。
今天早上七点她过来,阿哲还坐在那里。
疯了,真的疯了。
阿哲把手从头发里抽出来,坐直身体,重新面对屏幕。
他打开压力测试脚本,设定并发数:150。
场景:模拟用户在通话过程中从wifi切换到3g移动网络。
回车。
测试开始运行。
cpu占用率22%,内存占用率31%,网络i/o吞吐量在合理范围内。
所有曲线都平稳得让人安心。
阿哲盯着屏幕,一动不动。
并发连接数的曲线达到150的瞬间,网络切换信号同步触发。
然后。
什么都没有了。
服务器自己把自己关了。
没有任何错误日志。
没有任何崩溃报告。
没有任何异常信号。
干干净净,干脆利落,安安静静。
就好像这台价值六万八的服务器突然想通了,觉得活着没意思,决定原地入土为安。
“又来了。”
阿哲的声音沙哑得不像话,两天没怎么喝水,嗓子像砂纸。
他盯着屏幕上那条死亡直线,眼睛里的血丝比代码的红色报错还密。
“又他妈来了。”
这已经是第十四次了。
十四次压力测试,同样的结果。
并发数一过150,配合网络切换,服务器必死。
没有例外。
没有侥幸。
没有哪怕一次的“偶然成功”。
百分之百的复现率。
百分之零的线索。
阿哲用了所有他能想到的调试手段。
逐行断点——没用,代码执行到“死亡时刻”前一毫秒,所有变量状态都是正常的。
内存转储分析——没用,死亡瞬间的内存快照显示一切数据结构完好无损。
网络抓包——没用,死亡前最后一个数据包的格式和内容都完全合规。
他甚至把自己写的每一个函数单独拿出来做单元测试,一个一个地过,像开膛验尸一样把整个系统拆成零件,逐件检查。
全部正常。
每一个零件都是好的。
组装起来也是好的。
但是跑到150路并发加网络切换的时候,它就死了。
像鬼一样。
阿哲把手边最后一罐红牛拿起来,仰头灌了一口。
空的。
他看了看罐子,攥扁了,精准地扔进两米外的垃圾桶。