发现一个严重BUG,可能导致微信崩溃,但不确定触发原因?
我在小程序中设计了一个通知滚动条,内容是:刘**在榆次城分店购买了3桶XXXX 李**在榆次城分店购买了1桶XXXX 张*在榆次城分店购买了2桶XXXX 范*在榆次城分店购买了2桶XXXX 代码如下: [代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"container"[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"margin-lr-df flex justify-between bg-white"[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"text-sm"[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]text[代码] [代码]class[代码][代码]=[代码][代码]"icon-location"[代码][代码]></[代码][代码]text[代码][代码]>[代码][代码] [代码][代码]运营中心 [切换][代码][代码] [代码][代码]</[代码][代码]view[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"text-sm"[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]text[代码] [代码]class[代码][代码]=[代码][代码]"icon-new"[代码][代码]></[代码][代码]text[代码][代码]>[代码][代码] [代码][代码]天气:晴 12-27c[代码][代码] [代码][代码]</[代码][代码]view[代码][代码]>[代码][代码] [代码][代码]</[代码][代码]view[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"bg-white"[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]i-notice-bar[代码] [代码]i-class[代码][代码]=[代码][代码]"content-notice-bar"[代码] [代码]loop>[代码][代码] [代码][代码]刘**在榆次城分店购买了3桶XXXX 李**在榆次城分店购买了1桶XXXX 张*在榆次城分店购买了2桶XXXX 范*在榆次城分店购买了2桶XXXX[代码][代码] [代码][代码]</[代码][代码]i-notice-bar[代码][代码]>[代码][代码] [代码][代码]</[代码][代码]view[代码][代码]>[代码] [代码]</view>[代码] 原先这句话是写死的,但是最近由于客户需求,改为了动态可调整的。但就是因为这个调整出现了大问题。 修改后的代码: [代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"container"[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"margin-lr-df flex justify-between bg-white"[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"text-sm"[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]text[代码] [代码]class[代码][代码]=[代码][代码]"icon-location"[代码][代码]></[代码][代码]text[代码][代码]>[代码][代码] [代码][代码]运营中心 [切换][代码][代码] [代码][代码]</[代码][代码]view[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"text-sm"[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]text[代码] [代码]class[代码][代码]=[代码][代码]"icon-new"[代码][代码]></[代码][代码]text[代码][代码]>[代码][代码] [代码][代码]天气:晴 12-27c[代码][代码] [代码][代码]</[代码][代码]view[代码][代码]>[代码][代码] [代码][代码]</[代码][代码]view[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"bg-white"[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]i-notice-bar[代码] [代码]i-class[代码][代码]=[代码][代码]"content-notice-bar"[代码] [代码]loop>[代码][代码] [代码][代码]{{MallIndexTipTop}}[代码][代码] [代码][代码]</[代码][代码]i-notice-bar[代码][代码]>[代码][代码] [代码][代码]</[代码][代码]view[代码][代码]>[代码][代码]</[代码][代码]view[代码][代码]>[代码]内容完全没有改变,服务端传过来直接丢了进来,同时会被存入Storage做缓冲。 结果没想到开启了BUG之旅。 因为下午正好升级了服务器,最开始以为是升级后没有重启或需要重装系统,最后发现根本不是,而且日志中响应速度几乎都在1-30ms之间,最慢的是微信小程序登录反馈用户信息接口,是150ms左右。但这些基本上都能接受,所以不可能是服务端的问题。 最后找小程序的问题,结果发现了超级BUG。网上查询后,发现这个BUG好像在今年6月份就出现了。 真机调试的时候,发现了error code -1和-50300的错误。打开首页,也就是触发上面的滚动条部分代码后,出现了8000ms以上的超高延迟。而且几乎无法打开其他页面,打开后也是各种延迟加载,不间断的持续报错。 该问题因为发现的比较晚,正好是发布了预览版并审核通过,并且发到正式版之后的4小时左右我们才发现的。所以也在实机上发现了该问题,同时还发现该问题会导致微信程序直接崩溃。。 导致微信崩溃的问题,只在两台不同的账户的华为P30上做了复现。导致小程序卡顿的问题,除了华为P30外,还在vivo和另外一台客户的未知手机上出现了。 最后最神奇的一点是,该问题在开发者程序中并未有任何体现。但也导致了开发者工具出现严重异常,如AppData和Storage发生严重延迟。 临时修复BUG 经过多次反复测试后,定位了这个问题。而且解决也很简单,就是把这个{{MallIndexTipTop}}改回去就解决了。所以猜测是没过滤的缘故? 但问题是,也不应该把微信直接弄死吧。。感觉像是注入了致命病毒一样。 [图片] [图片]