美文网首页哲思想法
小佳日记0805:bug导致的百万损失

小佳日记0805:bug导致的百万损失

作者: geoky梦呓 | 来源:发表于2020-08-05 08:53 被阅读0次

今天写文章不太有状态,憋了半天没憋出一句话。

可能,黔驴技穷。

讲个故事吧,之前在上一家公司发生的一次生产事故。

上一家公司做的是支付相关的业务。

专业名词是聚合支付。

可以理解为把支付宝,微信还有其他支付渠道汇总成一个二维码。

场景就是,你去买东西,不管用微信扫码,还是支付宝扫码,还是其他,可以扫同一个二维码来完成支付流程。

有一次上线部署这套系统时,发生了巨大bug。

大家正常使用app发生一些bug,可能就页面打不开。卡死之类。

顶多是用户体验不好。

但是,支付相关的,是和钱打交道的。

扣款流程出现bug,可能分分钟几百万的账就走错了。

然而,这次偏偏还正好是支付流程出现了问题。

啥问题呢?

大家想一个场景,比如你要买一瓶雪碧,然后你扫完二维码,输入完密码,之后的流程就是,我们这套系统会去你的账户扣款,如果扣款成功,那么商户就会收到“钱已到账”的信息。

问题出在哪呢?

系统把扣款失败的信息,处理成了扣款成功。

这就很要命了,你账户上明明只有1元钱,根本不够买雪碧的。

然而,系统却告诉商家,扣款成功了。

这笔钱是需要第二天和商家对账结算的。

如果钱追不回来,那就要赔偿给商家。

好巧不巧,当时系统对接了某手机品牌的线上商城,相当于是系统的商家。

他们正好在做活动,当天购买的人很多。

一天下来,这种本来买不起,但是系统误判扣款成功的流水就两百多万。

第二天系统对账,傻眼了。

这钱根本就没扣成功,但是商城那边已经发货了。

两边的大佬开始对接。

商家那边的观点是,我收到你扣款成功的消息,才开始发货。责任肯定不在我们这边。

也确实是这个道理。

最后怎么解决的呢?

银行内部悄悄写了个定时任务,到点就自动去扣这些占便宜用户的账户。每小时去扣一次。

扣了一个月,追回来80%的损失。

不过,这种操作是违规的,未经客户允许,擅自扣款。所以是内部操作。

被银监会知道的话,要挨处分。

怎么会出现这种bug呢?

接口调用的时候,有通信成功和业务成功两层报文。

通信成功的前提下,判断业务成功才有意义。

然而,系统却把通信成功,业务失败这种情况,当成了扣款成功。

这种级别的生产事故,暴露开发流程的重大问题。

开发组的同学留下这种低级bug。

测试组的同学也没测出来这个bug。

原本6个月年终奖,没了。

相关文章

  • 小佳日记0805:bug导致的百万损失

    今天写文章不太有状态,憋了半天没憋出一句话。 可能,黔驴技穷。 讲个故事吧,之前在上一家公司发生的一次生产事故。 ...

  • 2018年全球互联网十大数据泄露事件盘点

    牛盾网络Newdun.com®根据《2018数据泄露损失研究》认为,大型数据泄露导致的损失巨大,百万条记录可致损失...

  • 拖延症导致损失几百万

    下午翻看QQ日志,看到了2014年1月份的一篇日志,才想起曾在那年的元旦痛下决心发奋图强订计划的事 当年那篇文章如...

  • 代码出bug导致公司的损失,该不该惩罚

    今天财务对账,发现有几笔话费充值,没收到钱,但是给用户把话费充上了。换句话说公司贴钱了, 查原因,代码逻辑有漏洞,...

  • 花4毛钱充100话费?拼多多出现系统bug被疯狂薅羊毛

    拼多多系统出现BUG导致重大损失,字节跳动域名被微信屏蔽,优酷关闭播放量显示,《啥是佩奇》网络刷屏,“CCTV国家...

  • 软件测试bug相关

    bug定级规则:紧急:造成系统崩溃,死机,并且不能通过其他方法功能代替。导致客户利益巨大损失的失效。提测不通过,严...

  • 日记0805

    哈,马上七夕了,要准备礼物啦 话说今天说早睡的,又没坚持住,哎 难啊难,明天早起跑步6点30起来吧

  • 【#如果你的html文档出bug】

    今天我们来唠一唠改bug。(文章穿插一点markdown标签语言) ##文档里不易察觉的小细节导致的bug (这一...

  • Netty——解决Selector 空轮询BUG

    一、前言 JDK NIO的BUG,例如臭名昭著的epoll bug,它会导致Selector空轮询,最终导致CPU...

  • 他,又,又迟到了

    不出意料,小佳又迟到了,昨晚做了一夜噩梦,居然与小佳有关。 原因主要是小佳昨天又不写日记,说不上第几回了,这孩子,...

网友评论

    本文标题:小佳日记0805:bug导致的百万损失

    本文链接:https://www.haomeiwen.com/subject/vhhnrktx.html