第三百零八章 投资人战争
第三百零八章 投资人战争 (第3/3页)
。
何明一个人坐在工位上,面前摆着三台显示器。他的眼镜滑到鼻尖上,头发乱得像鸟窝,手边放着半杯已经凉透的咖啡。
他正在审计王志远改过的每一段代码。
三天前,炜杰交给他一个任务:把王志远在职期间提交的所有代码全部过一遍,不仅是同步层,是所有模块。何明当时还觉得小题大做——一个分词工程师,能碰的东西有限。
但现在他不这么想了。
第一个发现是在查询解析模块。王志远修改了一个看似无关紧要的字符串拼接函数,把默认的分隔符从逗号改成了竖线。单独看这个改动没有任何问题,甚至能通过所有单元测试。但何明注意到,这个改动和同步层的参数篡改结合在一起时,会导致查询结果在缓存阶段出现键值冲突。
第二个发现在日志轮转模块。王志远加了一行时间戳格式的代码,把"年年年年-月月-日日"改成了"日日/月月/年年年年"。这个改动被注释标记为"适配海外服务器格式",但千度根本没有海外服务器。何明追查下去,发现当日志轮转按这个格式运行时,会触发一个边界条件,导致旧日志文件在特定日期不会被正常清理。
第三个、第四个、第五个……
何明越查越心惊。王志远不只是改了同步层,他在六个不同的模块里留下了"微调"。每一个改动单独看都无害,甚至能通过代码审查。但把它们连起来看,就是一个精密的陷阱。
如果六个模块同时按王志远预设的路径运行,查询解析的键值冲突会不断累积,日志轮转的边界条件会在特定日期引爆磁盘空间,而同步层的参数篡改会在最关键的时刻切断备份通道。
系统性雪崩。
何明靠在椅背上,后背全是汗。这不是一个离职员工发泄不满的恶作剧,这是一份经过精心设计的自杀蓝图。
他拿起电话打给炜杰,但话筒里传来占线音。炜杰还在那个投资人聚会上。
何明放下电话,继续查。他的直觉告诉他,还有更深的东西没挖出来。
他开始检查系统日志。不是业务日志,是操作系统层面的内核日志。王志远在职期间,每天晚上十一点到十一点半,服务器上都有一个定时进程在运行,进程名是"系统同步备份",看起来像是系统自带的备份服务。
但何明知道千度的备份策略。所有备份任务统一由运维组的"备份主控"调度,不会用这种散装的定时任务。
他调出这个进程的完整调用链,一层一层往下追。调用链的末端指向一个隐藏在日志系统深处的脚本文件,文件名是一串随机字符,藏在日志归档目录下一个叫"第三方归档"的深层子目录中。这个目录的名字伪装成第三方日志存放路径,连何明都是第一次注意到它的存在。
何明打开那个脚本。
屏幕上的代码让他的呼吸停滞了。
那是一个定时触发器。触发条件写得清清楚楚:如果系统时间在一九九九年二月一日零点之前,且千度的存储层版本标识不等于"协同版二点一点七",则自动执行以下操作——
清空全部索引缓存。
重置存储层版本标识为出厂默认值。
删除近三十天的增量备份索引。
何明看了一眼电脑右下角的时间显示。
1999年1月12日,晚上九点十七分。
距离触发器的截止时间,不到二十天。