程序員的噩夢:碰到這樣的bug你怕不怕
bug是這樣的:
這個bug只發生在生產環境中,本地無法重現。
這個bug發生的頻次很低,但是還沒有低到可以忽略。
這個bug的產生和多線程里的資源競爭有關(race condition)。
不知道這個bug是怎么觸發的。
這代碼不是你寫的,但是現在這個bug要你修復。而寫這塊代碼的人已經離職了。
因為一些庫里(library)的問題導致了這個bug,這個庫99.9%的時候都很穩定,然而調試到這些庫的時候你無法更進一步調試了。
過去幾年里很多人都嘗試解決它,但是沒有人成功。
這個bug是個邏輯上的錯誤,只有在系統運行了一段時間后才會發生。
調試這個bug需要某一領域的專業知識,然而你什么都不懂。
老板:我不管,明天就要改完。
這個bug不能推脫,搞不定就要走人。
來想象這樣一個場景:通過光波脈沖信號(light pulse signals)調試一個從地球發射出的火星探測器。這個bug只有在所有行星連成一條線時,并且只在火星的大氣層里才會發生。產生問題的代碼非常難讀懂,因為用了一個十幾年前退休的NASA科學家寫的庫(這些庫都沒有源碼)。你必須要解決這個bug,因為行星馬上就要連成一條線了(bug下一次出現要再等十年),搞不定的話這個投資上千萬刀的項目就要掛。
我現在就問你碰到這樣的bug怕不怕?
大聲的回答我!