UP | HOME

note to fix bug

Table of Contents

记录一次修复问题

缘由

运营接到客服的反馈,某个用户某个道具数量惊人,觉得有问题,需运营开发核查;运营也就直接转给了我。

问题原因

根据该用户获取的道具来源备注,快速定位到登录后免费获取某个道具(备注:每天只可以领取一次)。经过一番code review,发现每天领取一次这个道具的业务逻辑有明显漏洞,只是简单get,set每天领取的标示这样来判断是否需要领取(开发容易犯错的地方)。在并发的情况,很容易反复领取。

解决

快速解决方法是使用原子计数器解决(如:redis),本身项目有使用redis。 当然,还有其他方法,比如使用队列等等(容易忽略是:漏做“幂等”)

插曲

由于忙的原因,在初步定位出原因的情况下,请了另一个开发去修复;结果,该开发去模拟重现,加上重新去实现防并发的方法,测试等等,到了第二天上午还未修复;实在等不及,就很简单加了几行代码先上线了。(备注:自身的原因,没说明问题的严重性)

反思

First created: 2017-06-29 22:24:55
Last updated: 2021-11-25 Thu 23:23
Power by Emacs 27.1 (Org mode 9.4)
© 2017 – 2021 by josephzeng