第426章 天快亮了!

    第426章 天快亮了! (第2/3页)

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

    他坐直了。

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

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

    找到了。

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

    0.003%。

    三万三千次里出现一次。

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

    几乎不可能。

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

    然后他打开代码编辑器。

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

    他开始改。

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

    方远不看时间。

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

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

    他从第2091行改到第2128行。

    37行。

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

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

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

    他没叫。

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

    屏幕上开始跑。

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

    他靠

    (本章未完,请点击下一页继续阅读)