Re: [请益] 业界遇到这种bug该怎么处理?

楼主: Araiman (阿拉面非阿拉)   2022-10-12 11:18:55
之前在对岸做游戏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
总之 为了让自己半夜能睡得好 睡得香
一定要把基本功打好 才不会犯低级错误
大半夜被人从被窝里挖起来 可是很难受的
作者: xam (听说)   2022-10-12 15:58:00
不过他的全项目组大概也就一个人...
作者: lchcoding   2022-10-12 17:27:00
有借有还,再借不难...
作者: worcdlo (worcdlo)   2022-10-12 17:27:00
请教一下,你们一开始怎么知道问题是oom
作者: joshua5201 (炸虾子)   2022-10-12 18:05:00
运行到一半没头没脑就坏了可以猜跟OOM有关也可以去看kernel log他文中也有写在某个地方catch到OOM
作者: labbat (labbat)   2022-10-12 19:44:00
鬼故事是没有git svn版本控制
作者: worcdlo (worcdlo)   2022-10-12 21:01:00
他文中好像是写catch不到oom
作者: hobnob (hobnob)   2022-10-12 21:19:00
感谢分享
作者: jason222333 (发呆)   2022-10-13 02:29:00
高手 推
作者: ErcH922 (果zaitn)   2022-10-13 07:44:00
不知道有没有鬼故事能听
作者: viper9709 (阿达)   2022-10-13 07:45:00
推二楼
作者: knme (knem)   2022-10-14 23:21:00

Links booklink

Contact Us: admin [ a t ] ucptt.com