稳定复现,看我几行代码搞崩 Chrome

2022-03-10 10:26:49 +08:00
 xiangyuecn

搞崩 chrome 测试页面: https://xiangyuecn.gitee.io/recorder/assets/ztest_chrome_bug_AudioWorkletNode.html (打开后可能需要右键刷新一下页面)

过程分析记录: https://www.cnblogs.com/xiangyuecn/p/15988061.html

最新的 chrome 97 打开测试页面测试后每次都会崩溃,最开始发现的 chrome80 也会崩溃(不过测试页面反而不会崩了),古董版本 66 70 不会崩溃,更老的不支持 AudioWorklet 不用测试

这个崩溃现象也就是在特定时机才会出现,FireFox 测试的完全没有这个问题

[×]提交 bug

[√]v2ex 发帖

测试页面截图:

崩溃截图:

18495 次点击
所在节点    程序员
158 条回复
Valid
2022-03-10 11:07:37 +08:00
一个 while 也能蹦
youthfire
2022-03-10 11:10:11 +08:00
Safari 玩了下,没有崩
xiangyuecn
2022-03-10 11:11:41 +08:00
@zu1k #8 有提交地址没,发一个😁 不知道从哪里提交有机会得奖金😂
lx0758
2022-03-10 11:14:00 +08:00
Microsoft Edge
版本 99.0.1150.36 (正式版本) (64 位)
codehz
2022-03-10 11:16:33 +08:00
Chromium 修崩溃速度很玄学,之前报了一个 https://bugs.chromium.org/p/chromium/issues/detail?id=1207317 一直都不给修(不过可能和 windows 平台专属有关系)
ochatokori
2022-03-10 11:18:08 +08:00
版本 99.0.4844.51 (正式版本) ( 64 位)( linux )没崩,刷新几次也没崩
villivateur
2022-03-10 11:19:00 +08:00
Edge 崩了,Firefox 没崩
ochatokori
2022-03-10 11:21:15 +08:00
附上日志
[11:19:11.834]完成,浏览器正常,没有崩溃
[11:19:11.534]构造时没崩溃,等待浏览器崩溃 2...
[11:19:11.534]开始构造 AudioWorkletNode ,等待浏览器崩溃 1...
[11:19:11.533]3 ctx.state=running
[11:19:11.517]4 ctx.state=running
[11:19:11.503]2 ctx.state=suspended
[11:19:07.366]请随便点击一下页面,激活 AudioContext ,感觉要崩
[11:19:07.365]state 是 suspended ,感觉这次要崩
[11:19:07.365]1 ctx.state=suspended
Finnn
2022-03-10 11:22:39 +08:00
![1646882530]( )
ykk
2022-03-10 11:24:49 +08:00
firefox 正常
lance6716
2022-03-10 11:37:18 +08:00
manjaro KDE Chrome Version 99.0.4844.51 (Official Build) (64-bit)
一直不会崩
mopig
2022-03-10 11:44:44 +08:00
控制台打开就不会崩,控制台关闭才崩。
Hug125
2022-03-10 11:45:43 +08:00
vivaldi 复现了 版本 5.0.2497.48 (Stable channel) (arm64)
操作系统 macOS 版本 12.0.1 (版号 21A559 )

![ui2IUd_2022-03-10_11:43:01_SikwIG]( https://raw.githubusercontent.com/Hug125/ImgCloud/main/uPic/png/ui2IUd_2022-03-10_11:43:01_SikwIG.png)
CheckTime
2022-03-10 11:46:23 +08:00
99.0.4844.51 (正式版本)
刷新后立马点击会崩,但是刷新后稍微等几秒再点就不会崩。
AlexPUBLIC
2022-03-10 11:47:51 +08:00
Version 99.0.4844.51 (Official Build) (x86_64)
不会崩
492
2022-03-10 11:51:20 +08:00
版本 99.0.4844.51 (正式版本) ( 64 位)

成功
whitehack
2022-03-10 11:51:42 +08:00
mac 版本 98.0.1108.51 (官方内部版本) (x86_64)
崩了
492
2022-03-10 11:52:34 +08:00
@492 发现情况是偶发的,第一次是绝对崩溃。刷新第二次就不会。
zu1k
2022-03-10 11:54:14 +08:00
@xiangyuecn 24 楼有样例
nyakoy
2022-03-10 11:55:30 +08:00
[11:54:57.695]完成,浏览器正常,没有崩溃
[11:54:57.394]构造时没崩溃,等待浏览器崩溃 2...
[11:54:57.394]开始构造 AudioWorkletNode ,等待浏览器崩溃 1...
[11:54:57.394]3 ctx.state=running
[11:54:57.386]4 ctx.state=running
[11:54:57.386]2 ctx.state=running
[11:54:56.795]请随便点击一下页面,AudioContext 已是 running 状态,应该不会崩
[11:54:56.795]state 已是 running ,这次应该不会崩,刷新一下页面看看 state=suspended 时容易崩
[11:54:56.795]1 ctx.state=running
[11:54:56.786]代码开始执行...
[11:54:56.786]请打开控制台进行观摩,不然崩溃后看不到页面内容
[11:54:56.786] [被 audioWorklet 搞崩浏览器] 发现 Chrome 90 80 容易崩( 100%崩?),老版本 Chrome 60 70 测的不会崩,FireFox 不会崩。Chrome 崩溃要点:suspended 状态下的 AudioContext ,在 audioWorklet.addModule+构造 AudioWorkletNode 未完成时,同时进行 resume 调用,在恢复到 running 状态那一刻,浏览器崩溃了 错误代码:STATUS_ACCESS_VIOLATION


chrome 95.0.4638.54 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/839328

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX