字:
关灯 护眼
饿狼小说 > 首富从入职阿里开始薅羊毛 > 第426章 天快亮了!

第426章 天快亮了!

    一月三号,凌晨两点四十。

    三楼调试间的灯没关过。

    从十二月初封闭开发到现在,这间屋子的日光灯管亮了整整一个月,中间换过一根,靠窗那根,闪了两天之后自己灭了,老周让方远去行政部领了一根新的,方远扛着一米二长的灯管从走廊那头走过来的时候差点撞到消防栓。

    现在四根灯管都是亮的,白光,偏冷,照得每个人脸色都有点发青。

    调试间里还剩两个人。

    老周趴在靠门那张桌上,头枕着左胳膊,右手搭在键盘边上,手指微微蜷着,搪瓷缸歪在手边,杯口的豁口朝上,里面还有小半杯茶,凉透了,茶叶片贴在杯壁上,深褐色的。

    他大概是十二点多睡着的。

    方远没有叫他。

    方远在最里面那张桌上,三块屏幕,左边跑着v2.0引擎的72小时持续测试日志,绿色的字在黑底上一行一行往上滚,速度很快,像瀑布,中间是代码编辑器,光标停在第1847行,右边是测试用例的覆盖率面板,数字在缓慢变化。

    72小时持续测试从元旦那天下午三点开始。

    到现在已经跑了将近六十个小时。

    本地账本模块,占用锁机制,最终一致性回调,1000并发,模拟断网,模拟重连,模拟高延迟,模拟丢包,每一种异常场景都跑了至少两百轮。

    六十个小时,零异常。

    方远看着左边屏幕上的日志,绿色的,一直是绿色的。

    他揉了一下眼睛,眼镜摘下来放在桌上,镜片上有指纹,他用T恤的下摆擦了两下,没擦干净,又戴回去了。

    六十个小时零异常。

    按照正常流程,72小时跑完就可以出测试报告了,再过十二个小时,到明天下午三点,全绿就交。

    他本来可以去睡的,隔壁会议室铺着两个睡袋,一个蓝色一个灰色,蓝色的是他的,枕头是从家里带的,记忆棉的,已经有点塌了。

    但他没去。

    不是不困,是他有个习惯,跑长时间测试的时候,他喜欢盯着日志看,不是看有没有错误,是看日志的节奏,正常运行的日志有一种节奏感,像心跳一样,均匀,稳定,如果有什么地方不对,节奏会变。

    他盯了一会儿。

    绿色的字,一行一行。

    凌晨两点五十一分。

    日志的节奏变了。

    不是报错,颜色还是绿色,但两行日志之间的间隔从平均3毫秒跳到了7毫秒,然后回到3毫秒,然后又跳到了9毫秒,然后回来。

    他坐直了。

    心跳漏了一拍,不是他的心跳,是日志的心跳。

    他把日志窗口拉大,打开时间戳详细模式。

    找到了。

    第58小时43分12秒,本地账本和中心账本的一致性回调过程中,有一个极小概率的竞态条件,当离线时间超过72小时后重新上线,如果本地账本在回调过程中同时收到新的交易请求,占用锁的释放顺序会产生一个0.003%概率的冲突窗口。

    0.003%。

    三万三千次里出现一次。

    在冬奥的实际场景中几乎不可能触发,断网不会超过72小时,一个小时都不太可能,测试大纲上的离线场景最长也就几分钟。

    几乎不可能。

    他盯着那个数字看了十秒。

    然后他打开代码编辑器。

    光标从第1847行跳到了第2091行,占用锁的释放逻辑。

    他开始改。

    调试间里很安静,暖气管每隔一会儿咔一声,像有人用指甲轻轻弹了一下铁管,走廊尽头自动售货机的灯在闪,一明一暗,节奏跟暖气管不同步,两种声音交替出现,像两个人在用不同的方式呼吸。

    方远不看时间。

    他在代码里加了一层时间窗口校验,如果本地账本的离线时长超过设定阈值,回调过程中的占用锁会自动进入排他模式,拒绝一切新交易请求直到回调完成。

    这个改动很小,逻辑上只是加了一个if判断,但要保证这个判断不影响正常场景下的性能,需要调整锁的释放序列。

    他从第2091行改到第2128行。

    37行。

    改完之后他没有立刻提交,他先在脑子里过了一遍,37行代码,每一行他都能说清楚为什么这么写。

    然后他回头看了一眼老周。

    老周还在睡,姿势没变,右手搭在键盘边上,食指微微搭在空格键上,随着呼吸起伏,轻微的幅度,键盘没有响,搪瓷缸还歪着,茶叶片在杯壁上没动过。

    他没叫。

    他打开测试框架,把修改后的代码加载进去,启动一轮完整的回归测试。

    屏幕上开始跑。

    绿色的字又开始往上滚了。

    他靠在椅背上,摘下眼镜,用拇指和食指捏了一下鼻梁,眼睛有点酸。

    回归测试跑了四十分钟。

    全绿。

    他重新戴上眼镜,把修改提交到代码仓库。

    提交记录的备注栏。

    他在里面打了一行字。

    "72h+静态修复·实际触发概率≈0·但不允许≈0。"

    保存。

    然后他在测试用例文件里新开了一组,168小时,上周老周说"无上限"的时候他就想好了,168小时是7天,够了,如果168小时也跑不出问题,那这个bUg就算是彻底封死了。

    168小时的用例会在后台自动跑,不需要人盯着。

    他站起来。

    椅子在地板上蹭了一下,声音不大,但在凌晨的安静里还是很清楚。

    老周动了一下,没醒,呼吸变了两秒,又匀了。

    方远走到窗边。

    调试间的窗户不大,对面是微光总部的B栋,灰色的外墙,窗户都是暗的,楼下停车场空空的,路灯亮着,橘黄色的光打在地面上,湿漉漉的,大概半夜下过雨。

    天际线的边缘有一条很淡的灰白色。

    天快亮了。

    杭州十二月底的天亮得很晚,要到七点以后天际线那道灰白色才会变成蓝灰色,再变成灰白色,再慢慢亮起来。

    他看了一会儿。

    走廊那头自动售货机的灯还在闪,暖气管又咔了一声。

    他回到座位上,把眼镜推了一下。

    拿起手机看了一眼时间,四点十九分。

    睡袋在隔壁,记忆棉枕头有点塌了。

    他想了想,把手机放下,拉过键盘,打开了168小时测试的实时日志。

    绿色的字开始滚了。

    他看着。

    …………

    上午九点二十,林彻到了三楼。

    调试间的门开着,老周坐在桌前,搪瓷缸换了新茶,热气从豁口那里冒出来,方远不在。

    "方远呢?"

    "隔壁睡了,四点多的时候,"老周端起搪瓷缸喝了一口,"他昨晚修了一个东西。"

    林彻看了一眼老周的屏幕,72小时持续测试的最终报告,全绿,旁边还开着一个窗口,168小时测试正在跑。

    "能?"

    老周放下搪瓷缸。

    "能。"
『加入书签,方便阅读』