第二天早上六点,手机在床头柜上唱歌。
路文涛迷糊中以为闹钟响了,但不对,闹钟是许巍的歌,现在是加拿大摇滚乐队“Nickelback”在嘶吼,那是他设置的来电铃音。
路文涛摸到了电话,杰瑞声音显得特别大:“老路,我们郊外那五十个基站今天凌晨两点多自行重启了,这次市区里的六十多个基站全部正常。”
“我靠!什么傻逼情况?”
有一阵子没有说“傻逼”二字了,他脱口而出,然后,抱歉地看了一眼被惊醒的吴俪俪,去了卫生间关着门继续电话。
杰瑞说:“网管上有告警,我们值守的兄弟当时就发现了,通知了我,我们已经和研发在电话会议了,但是仍然没有有价值的日志。”
“两点多的事情,你怎么六点钟才通知我?”
“一样的现象,三分钟就恢复正常了;客户暂时没什么大的反应,下面的客户还没往上报;技术上的事情我来组织,让你多睡几个小时呗,天亮了就该你去给客户领导跪了。”
路文涛嚷道:“TMD!幸好昨晚没在客户界面的日报中说是电力检修导致,不然丑大了!嗯,会不会恰好郊外那个区域今天凌晨电力检修?”
杰瑞以一个技术男的逻辑冷静地说:“等客户上班了我就去问!我看到你昨晚的邮件了,还是你老大考虑周全!现在挺好,正好验证,如果恰好今天凌晨是那个区域电力检修,那就基本验证了之前的结论;如果没有电力检修,那就基本排除了电压的原因,家里也别扯蛋说可能是现场有外部因素影响了!聚焦我们自己的产品问题!”
他们很快了解到,电力公司当晚并没有做任何操作。
17日凌晨两点多市区内他们的基站自行重启、手机通信中断三分钟;21日凌晨两点多郊外他们的基站自行重启,手机通信中断三分钟。地点不同,两个区域基站的站型不尽相同,相同的除了“故障现象”就是凌晨两点多这个时间点。
“伟中”将技术问题处理的级别进一步上升,公司成立了跨硬件、软件等多个部门的攻关组,每天通报处理进展。
但故障现象未重现,重启时无日志记录,产品研发排查了几处疑点,迟迟不能准确定位故障原因。
其它技术问题倒是已经清理干净,小规模验证能否在9月1日前通过客户验收的瓶颈只在于此。
24日凌晨两点多又来了一次!这次是市区内基站自行重启,郊外的没事。
算起来一个星期时间里“伟中”做小规模验证的两个区域出现了三次同样故障,每次均导致区域之内所有手机在三分多钟内完全“没信号”,并且别说原因,连故障规律都没有摸清楚,前后方一样压力巨大。
24日晚上,路文涛、杰瑞两个人仍在“作战室”里,墙上张贴着项目组织结构图、项目计划、进度监控,还有一幅挂历。
路文涛新买了一副配套电脑的蓝牙耳机,头戴式、带麦克风的。他这会儿觉得脑子转不动了,小憩,试试新耳机的蓝牙传送距离能有多远?只见他一会儿走近电脑,一会儿离远电脑,一会儿走出会议室往卫生间去。
杰瑞看着墙上挂历发呆,他刚才在17日、24日上各画了个星,在21日上画了个圈。
路文涛回来:“不错,电话会议神器!不过美中不足,一进厕所门就断掉了,不能一边拉屎一边开会。今后在家里参加一些无聊的会的时候,把电脑放在客厅,一边开会一边炒个菜是没问题的。”
杰瑞的注意力在墙上,他突然说到:“我知道了!”
“你知道什么了?”
“规律,我们的重启有很明显的规律,它是个轮回。”
路文涛摘下耳机,瞪着杰瑞:“轮回?你还四象生八卦,八卦化重启?靠!问题搞不掂,玄学出来了?”
杰瑞指着挂历:“我们总想着17日、21日、24日的日期,实际上是每个星期五凌晨两点市区的基站重启,每个星期二凌晨两点郊区的基站重启,换成星期几来看,规律就看得明显了!接下来应该是28日星期二凌晨郊区的基站重启了。”
路文涛朝着墙上挂历:“你这有点牵强附会吧?那为什么会这样?我们的新版本会来大姨妈?一个星期来一次?”
“为什么会这样?这要产品研发来回答,我又看不到代码。不过,你看!”
杰瑞说着站起来,拿一支白板笔,走到挂历前,在10日上画了两个星星,在14日上画了两个圈圈:“我们10日把城里的更新了版本,因为那天客户老大发飙,所以客户要求我们观察多两天,确认新版本不会比原来的更烂以后再动郊区的,我们是在14日凌晨更新了郊区的版本。我们更新版本时正好是在凌晨两点多做了一次重启,现在应该是从第一次重启的时间开始,每运行七天就会重启一次,城里是10日、17日、24日,郊外是14日、21日。”
路文涛觉着他讲的有逻辑了,问:“10日和14日更新版本的时候,几十个基站都是在两点多同时重启?”
杰瑞说:“老大,我们升级是把新软件通过网管成批地发到基站上去的,我记得差不多都是在这个时间点,这个可以查得到。”
一旦发现了问题规律和线索,定位原因就快了。
产品研发团队找到了故障原因,新版本软件质量存在问题:
软件设计中在某处XXX字节内存,每次应该占用一部分然后释放,结果它不释放,七天之后内存溢出,程序运行要用到的内存大于系统能提供的最大内存,此时程序就运行不了,导致自行重启。并且周而复始,每七天溢出、重启一次。
一旦定位了问题原因,解决问题就快了。
他们再次更新了软件,这次产品研发提供的是热补丁,也就是说不需要中断业务,不需要重启设备就可以修复当前版本的缺陷。
终于,“伟中”跌跌撞撞通过了小规模验证的验收,项目进入到大规模部署基站的阶段。下一阶段,他们要用七个月时间在德国全境部署几千个无线基站。
产品研发主管给路文涛打了一个电话,他不好意思地说:“路总,这次版本问题多了点,一线的兄弟们辛苦了!你老大多担待!”
“确实太烂了!内存溢出没告警、没日志的?不过,我聚焦解决问题,不发泄情绪,现在问题解决了,公司该怎么回溯、问责版本质量不关我的事!”
路文涛记起了什么,立即接着说:“不行,我要给你发个感谢信,感谢你及时提供版本、及时排除故障!上次大佬们威胁要把我俩对调个位置,让我俩对换脑袋思考,对换屁股继续撕,我在海外还没呆够了,而且能力有限,干不了你这个活儿!万一大佬们还没忘记这事,决定现在把你踢到德国来,让我回去填你的坑,那我可会死得很快!”
长江上游滩多流急,中游水道复杂,下游静水潜流,在这个世纪的第二个十年,“伟中”的全球化之路就仿佛是长江行船到了中流,公司在海外各国的一线团队常常会撞上过去不曾遇见过的复杂挑战。
这种挑战区别于初登上全球化大舞台之际因为陌生而来的新鲜挑战,而是当你站在舞台中央之后,因为聚光灯把你从头到屁股照得纤毫毕现而来的复杂挑战。
一波即平,一波即起,眨眼到了9月下旬,“莱茵电信客户部”风波又起。
这一次惹来麻烦的是伟中公司“莱茵电信”无线替换项目组的技术总负责杰瑞,但他惹来的麻烦却不是一个技术问题。