bug是这样的:
这个bug只发生在生产环境中,本地无法重现。
这个bug发生的频次很低,但是还没有低到可以忽略。
这个bug的产生和多线程里的资源竞争有关(race condition)。
不知道这个bug是怎么触发的。
这代码不是你写的,但是现在这个bug要你修复。而写这块代码的人已经离职了。
因为一些库里(library)的问题导致了这个bug,这个库99.9%的时候都很稳定,然而调试到这些库的时候你无法更进一步调试了。
过去几年里很多人都尝试解决它,但是没有人成功。
这个bug是个逻辑上的错误,只有在系统运行了一段时间后才会发生。
调试这个bug需要某一领域的专业知识,然而你什么都不懂。
老板:我不管,明天就要改完。
这个bug不能推脱,搞不定就要走人。
来想象这样一个场景:通过光波脉冲信号(light pulse signals)调试一个从地球发射出的火星探测器。这个bug只有在所有行星连成一条线时,并且只在火星的大气层里才会发生。产生问题的代码非常难读懂,因为用了一个十几年前退休的NASA科学家写的库(这些库都没有源码)。你必须要解决这个bug,因为行星马上就要连成一条线了(bug下一次出现要再等十年),搞不定的话这个投资上千万刀的项目就要挂。
我现在就问你碰到这样的bug怕不怕?
大声的回答我!