整体心情可以说是从一开始不知所措到最终bugfix时一切如常吧
bug来临
当时正在吃饭,突然就被艾特说有线上bug
紧接着我就被拉进了项目的 online 群,匆忙吃完饭,看了下整个问题的描述,标的是 P4 级,写的是72小时内修复,还好,时间充足。
看过用户提交的bug视频后,我很容易定位了页面故障的原因,没有请求到接口的数据导致渲染不完全,无法进行下一步操作,但后续我就有点懵了,不知道接下来该如何去解决问题。
排查过程
用户产生 bug 的手机是 vivo X7 Plus,Android 5.1.1 版本
day 1
首先的问题就是找不到完全和客户手机相同的型号,最后不得已使用了 vivo X7
,同样 Android 5.1.1,登录了测试账号后,按照用户的操作流程,bug 复现了,将手机交给了客户端同学,让他先试着定位下问题原因,客户端同学后面发了一串 url,说是 捕获到这里后就崩了,问我从哪里调用的这个,但很不幸,这串 url 是被转码过的,并不能直接找到。
day 2
更不好的事情来了,拿着测试机我顺手点了和 bug 页面相关的另一个页面,同样的问题也产生了。
还能怎么办,先一步步调试吧。根据bug产生的结果类型,初步判断是 sdk 调用问题。
于是我在这里新起了一个页面js,一点点将页面中调用的 sdk 填写进去,然而所有的 sdk 试过后并没有任何问题。
一点一点注掉业务逻辑后,我发现是在 useEffect
中的一个fetch
方法导致的页面崩溃,后续问了辉哥发现是由于 sdk 包装 fetch
方法时没有加入 polyfill 导致的,我重新在包装 fetch
的页面引入 polyfill 后,打包测试,问题不再出现。
后续
算是一次特别的经历吧,心里还是有不小的压力的,毕竟是线上问题,后续解决过程中才慢慢的变得平静,逐渐的有条理了。
版权属于:ajycc20
本文链接:https://ajycc20.top/archives/22.html
所有原创文章采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。 您可以自由的转载和修改,但请务必注明文章来源并且不可用于商业目的。