我们项目开发的云小程序,近期有部分用户反馈一个相同的bug,但是把代码翻了好几天了,一直找不到bug原因。
bug具体如下:
用户user表有个记录用户积分的字段dou(整数类型),整个项目对dou字段的更新均采用自增或自减的方式 dou: _.inc(dou_num)
突然有几个用户反馈,他们的积分由100多变成1了。也就是字段dou的值突然由100多变成了1。
我查看了用户积分的变动记录,确实存在异常,确实是突然从100多变成了1。但是怎么都找不到原因!!!
我猜可能的原因:
1、_.inc()命令可能存在bug,在高并发的情况,导致dou字段丢失,然后用户点签到功能,dou字段重新建立并自增+1
2、系统被人攻击,数据被恶意篡改。如果是这个问题,不知道如何排查,没有这方面经验
这个bug真的找了好几天,一直找不到原因,不知道有没有谁遇到过这个问题
建议自查一下看看有没有用set去更新记录,或者哪里有直接更新成1
没遇到过,会不会哪里更新user的其他信息的时候把dou改到了。
看看系统用户日志,后台积分记录这个地方只能是数值没啥用处。