作者Araiman ()
看板Soft_Job
标题Re: [请益] 业界遇到这种bug该怎麽处理?
时间Wed Oct 12 03:18:55 2022
之前在对岸做游戏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
总之 爲了让自己半夜能睡得好 睡得香
一定要把基本功打好 才不会犯低级错误
大半夜被人从被窝里挖起来 可是很难受的
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.165.220.72 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1665515939.A.976.html
1F:→ xam: 不过他的全项目组大概也就一个人... 10/12 07:58
2F:推 lchcoding: 有借有还,再借不难... 10/12 09:27
3F:推 worcdlo: 请教一下,你们一开始怎麽知道问题是oom 10/12 09:27
4F:推 joshua5201: 运行到一半没头没脑就坏了可以猜跟OOM有关 10/12 10:05
5F:→ joshua5201: 也可以去看kernel log 10/12 10:06
6F:→ joshua5201: 他文中也有写在某个地方catch到OOM 10/12 10:06
7F:推 labbat: 鬼故事是没有git svn版本控制 10/12 11:44
8F:推 worcdlo: 他文中好像是写catch不到oom 10/12 13:01
9F:推 hobnob: 感谢分享 10/12 13:19
10F:推 MoonCode: 10/12 13:43
11F:推 jason222333: 高手 推 10/12 18:29
12F:推 ErcH922: 不知道有没有鬼故事能听 10/12 23:44
13F:推 viper9709: 推二楼 10/12 23:45
14F:推 knme: 推 10/14 15:21