记录一次bug复现

当学生购买商品的时候,偶现订单处于发货状态,其实学生已经入班(排查了四五个小时)
排查思路:
1.偶现找到必现条件(非该学校学生第一次购买课程之后偶现,这是在排除bug之后才知道的)
2.大胆假设bug原因,小心debug求证(支付回调接口debug,本地无法复现,直接代码打log,然后线上复现查找原因,结果复现了但是log没起作用,因为都是正常的)
3.查看mysql log,因为log日志有准确地时间,所以专门拿了日志开始后面三四秒的请求,因为是在测试环境测试的,所以三秒只有62次sql,逐步排查,最后查出是batch_update 导致的bug
4.逆推代码,从sql找到代码,三个分支1.账户合并 ,2,账户更新,3balance一个接口,又去查询了日志,发现当前时间段没有接口请求,所以排除
5.这个时候账号更新这个请求一下子觉得找到了答案,因为新学生加入学校是需要更新userSchool ,账户信息的,所以这里我本地开启了一个服务修改了group,连接了测试环境的kafka,然后再次购买,果然我这里kafka debug断点被触发,然后我等待了十几秒再下一步执行,然后必现这个bug

posted @ 2022-08-11 00:03  寻找梦想的大熊  阅读(41)  评论(0编辑  收藏  举报