知识星球产品事故@2017 No.2

由于小密圈程序存在 Bug,导致了:

1. 用户可以短时间内超额提现——用户提走了不属于他的钱;
2. 部分费用(会员费)漏记入收款用户的钱包——用户没有收到他应得的钱。

本次事故影响到了 17 位用户,目前已经修正这 17 位用户的账户金额(有些增加,有些减少,但每一笔都有详细记录,可以回溯),少数几位用户的余额会出现负数(因为已经预支了还不属于他的钱)。

对此造成的困扰,我们感到非常抱歉,所幸这个问题不会造成用户的经济损失,我们后续会更加严谨。

导致这个 Bug 的具体原因是:

1. 提现操作的执行过程中,小密圈 API 收到提现请求后,检查用户余额是否足以满足请求。如果不满足,返回失败,流程终止;
2. 如果足额,创建一条提现记录,然后扣除指定额度;
3. 执行实际的转账操作。

其中第 2 步「创建提现记录」和「扣除额度」之间有一定时间间隔,如果在此期间同一用户又发起一次提现操作,就会出现检查余额通过,但实际上超额提现的问题。同样的原因,其他的短时间内的多次资金操作,比如用户付费入圈,也会因为 BUG 而漏记,导致钱入资金池了,但没有记入收款人的钱包。

发表评论

电子邮件地址不会被公开。 必填项已用*标注