发现一个严重BUG,可能导致微信崩溃,但不确定触发原因?
发布于 7 年前 作者 mingu 9675 次浏览 来自 官方Issues

我在小程序中设计了一个通知滚动条,内容是:刘**在榆次城分店购买了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}}改回去就解决了。所以猜测是没过滤的缘故?

但问题是,也不应该把微信直接弄死吧。。感觉像是注入了致命病毒一样。

2 回复

的确有此问题,动态加载就卡死,静态显示没问题,发布体验版小程序直接卡死,在开发工具中预览问题不明显。

回到顶部