发布于: 修改于: Android转发:0回复:41喜欢:7
从上周四开始,理杏仁开始不停地挂,每天都能收到n条报警短信。为了解决这个问题,三个合伙人一起开始了三天没日没夜的找bug行动。首先确定是内存被突然使用完造成的;jeninks不再执行webpack build,转移到本地build,写工具上传,依旧挂;然后各种内存工具监控,因为采集数据量过大,造成了更频繁的挂;然后尝试压缩一切别的工具的内存空间使用,还是挂;然后猜测网站一切可能导致使用内存使用高的页面并改正,还是挂;然后找出整个网站cpu密集计算的地方,把筛选器效率提升了三倍不止,还是挂……
经验告诉我应该就是周四前面一天某行代码改动所致,于是我把周四前两天提交的所有代码查了一遍,同时还把页面测了一遍,没发现问题……
最后迫不得已,自己整了套工具,将所有数据库查询写入日志,然后用工具查询挂的瞬间没有数据库返回的日志,终于找到了bug……有一个查询在没有数据的情况下居然绕开了我们的数据库安全查询检查,返回了几十万条数据……
Bug本身是个小bug,结果却搞出来了一套数据build工具,以及一套内存监测工具,同时还找出了系统内在潜在的安全隐患,还让整个网站高性能损耗的地方得以被高效优化。[捂脸]

精彩讨论

精神老小伙儿03-17 00:40

慢查询日志没看吗

浮云资本03-17 00:17

“有一个查询在没有数据的情况下居然绕开了我们的数据库安全查询检查,返回了几十万条数据”,莫非是,注入这个sql语句,可以把你们的数据都拿走

有谦03-17 01:43

这个,虽然定位问题的过程可能没有直击本质走了点弯路,但结果是不错的。
以前,生产环境出现bug会觉得很遗憾,甚至有点责怪自己或他人;但是现在觉得,每一次bug都是改善系统或优化规范、流程的契机。看开了,团队和系统也变得更好。

全部讨论

慢查询日志没看吗

03-17 00:17

“有一个查询在没有数据的情况下居然绕开了我们的数据库安全查询检查,返回了几十万条数据”,莫非是,注入这个sql语句,可以把你们的数据都拿走

03-17 08:29

没有灰度机制么。。。

03-17 01:43

这个,虽然定位问题的过程可能没有直击本质走了点弯路,但结果是不错的。
以前,生产环境出现bug会觉得很遗憾,甚至有点责怪自己或他人;但是现在觉得,每一次bug都是改善系统或优化规范、流程的契机。看开了,团队和系统也变得更好。

03-17 00:15

这个bug作用很大呀

03-17 05:56

可以把查询超时时间弄短,宁可查不到,也不会卡住。

03-17 01:11

应该是oom啊,一般看下/var/log下的文件,oom杀死进程的话里面会有记录;而且服务器没有内存监控么,看一下监控图表就能发现内存使用率飙升

03-17 06:58

有没有一种可能:“理杏仁” 裁员裁到大动脉了,……

03-17 08:31

bug变ai了

03-17 07:46

上云吧,对于慢SQL分析而言,是云上DB实例的基础功能,可以很方便地帮你定位问题