白色桑塔纳爬过他身边时,排气管抖出一串发闷的响。
陈末站在碎石路边,没回头追。车尾卷起的泥点落到裤脚,凉凉一片。他盯着那辆车拐进站口,心里那根线又紧了一寸。桥下接夹的人,今天坐在副驾。灰蓝资料夹还在他手里。
这趟上山,白车不是空跑。
可眼下回头没用。外棚那两排半列已经钉进抄表册,表箱也上了口子。再往里摸,夹克男人翻脸的速度只会更快。陈末把塑料袋提稳,沿着山路往下走,脚步比刚才快了不少。
下坡路晒出一层白汽,沟里的水声顺着石壁往上反,像有人在下面不断搓铁皮。
走到半山拐角,他拦下一辆回县里的小四轮。车斗里堆著竹篓和两包化肥,司机拿毛巾擦著脖子,问他去不去县城。陈末点头,上车,背靠铁板坐下。车一启动,柴油味就往鼻子里钻。
手机在裤兜里震了两下。
第一条是夹克男人发来的,到得很短。
“到账,位留到明晚。”
第二条来自张伟。
“陆又问一遍,我说你还在核时间戳。中午前得有东西,不然他要找项目那边一块盯你。”
陈末看完,手指在键盘上敲回去。
“你先把昨晚到今天上午那段访问日志给我摘出来。只要接口请求、响应码、时间。发qq邮箱,主题别写供应商。”
张伟那边回得很快。
“行。你给我个说法,我好帮你圆。”
陈末看着摇晃的山路,回了八个字。
“缓存回刷,时钟飘了。”
这八个字够了。
张伟懂技术,也懂办公室里那口风该往哪吹。只要有个能立住的名头,他会顺着往下垫。陆仁甲要的从来不是完整真相,他要的是中午开会时,自己手里有张能压人的纸。
车进县城时,太阳已经从云后探出来,路面蒸得发亮。
陈末下车没去大路边那几家饭馆,直接拐进邮电局旁边的小巷。巷口挂著一块褪色招牌,写着“迅达打字复印 传真 上网”。玻璃门半开,里面混著纸墨味、烟味,还有旧电脑机箱发热后的塑料味。
柜台后坐着个四十来岁的女人,头发盘得很紧,正在给一台传真机换纸。她抬头看了陈末一眼。
“上网一小时三块,打印另算。u盘自带没毒吧。”
“没带u盘。”陈末把硬币和一张十块放到台上,“给我一台能登邮箱的机子,再借我一张空白纸。”
女人用圆珠笔在本子上划了一行,把最里面那台机子开了。
“六号。掉线自己拍主机。”
陈末走进去,拉开椅子坐下。网吧和打字店连在一起,里头一共七八台机器,风扇吹得哗啦响。隔壁两个学生模样的人正在玩红警,鼠标拍得啪啪直响,音箱里时不时蹦出几声爆炸。
他没受影响,先登了qq邮箱。
张伟发来的邮件已经到了,附件是两个txt,外加一张截图。陈末下载下来,打开一看,目光先稳了点。张伟做事还算细,路径、时间、响应码都摘了,连凌晨那段重复请求也单独标红。
足够拼一版结论。
他先开记事本,把时间线捋了一遍。
凌晨两点四十七,接口开始出现一组重复请求。间隔不整齐,有三十多秒,也有一分多钟。五点以后,请求逐渐减少。到八点半,又冒出一截补发。这样的形状很像上游缓存积压后回刷,再碰上两端时钟不齐,看起来就像同一笔被多次打进来。
这活有七成是真的,三成靠他往里垫。
陈末把手放在键盘上,敲得很稳。
“初步排查结论如下:一,现网支付接口主链路未见持续性丢包与服务中断。二,异常请求集中在供应商机房对账缓存回吐窗口,时间戳与本地记录存在偏移。三,结合请求体哈希和返回码判断,重复记录更接近上游重放和补发,暂未见我方业务逻辑重复扣发证据。四,建议供应商侧复核ntp同步、缓存过期策略及凌晨重试脚本。”
他写到这里,停了两秒,又把“暂未见”后面补了一行。
“我方侧建议保留昨晚二十三点至今日九点接口日志、应用层trace及网关访问明细,待供应商原始机房日志回传后做二次对比。”
这样写,路就留出来了。
中午这版只是第一层。后面真有人顺着查,他还能把口子往“等供应商回传”上拖。陆仁甲想拿这份东西顶一阵,他也想。
写完初稿,陈末没有急着发。
他把文档又过一遍,把几个太满的词删掉,改成更像办公室里会用的说法。太硬,容易招人盯细节。太虚,又像糊弄。写到能让项目、测试、对接供应商的人都看得懂,分量才够。
手机亮起。
张伟打来电话。
陈末接通,压低声音,“说。”
“陆刚从会议室出来,脸很臭。”张伟那边有人走动,椅子拖地的声音断断续续,“他让我问你,结论是不是能落到邮件里。项目那边催了。”
“十分钟。”
“还有个事。”张伟顿了下,声音更轻,“测试那姑娘刚说,陆上午还问了老刘一句