之前在對岸做游戲server的 幹了10幾年
一點拙見
首先這個BUG還是要引起重視 要考慮到是不是自己寫的網路庫有問題
比如說windows的iocp 有沒有合理的處理了所有向上抛的事件與例外
也或者是 自己寫的無鎖緩衝有bug 導致丟包
以上所說 都屬於必需立即查出來的情況
我假設server間通訊也用到這套庫 那麽一旦往DB寫的數據丟失 屬於重大事故
停機維護的損失 以一個日活2000萬的項目 少說是百萬
往輕了說
也有可能是網路波動 導致TCP層收到了RST 清除了發送緩衝
總之 辦法就是全項目組一起Review code
得益於版本控制 可以在最近改動的相關code裏尋找蛛絲馬跡
這個情況下 其實就有點像是coding skill大比武了
基本功好的人 往往快別人幾步找到漏洞
升遷路上就會比較順遂
我記得有一次出版本 server運行幾個小時就崩 而且沒dump
不管API或是語言層面的函數都沒用 就是catch不到OOM
後來Review code 才發現有人在某類的Constructor向heap申請一塊不大不小的記憶體
但在成對的Destructor沒有釋放 導致Memory Leak 由於記憶體的碎片效應
最終申請不到足夠大的記憶體 從而發生了那個不知道在那層被攔截到的OOM Exception
總之 爲了讓自己半夜能睡得好 睡得香
一定要把基本功打好 才不會犯低級錯誤
大半夜被人從被窩裏挖起來 可是很難受的
--