稳定复现,看我几行代码搞崩 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 发帖

测试页面截图:

崩溃截图:

19227 次点击
所在节点    程序员
158 条回复
kaedea
2022-03-10 21:20:32 +08:00
Android Chrome 成功复现
cyp0633
2022-03-10 21:46:24 +08:00
Chromium 101.0.4928.0 刷新两次后崩溃
maskerTUI
2022-03-10 21:51:13 +08:00
Chromium 86 崩溃
Wanerlove
2022-03-10 21:52:04 +08:00
Chrome 101.0.4935.0 稳定复现
sarvatathagata
2022-03-10 22:24:27 +08:00
Chrome 99.0.4844.51 Ubuntu 20.04 经过刷新与彻底刷新,重开浏览器等尝试,没有任何崩溃
luzemin
2022-03-10 22:43:02 +08:00
Version 99.0.4844.51 (Official Build) (64-bit)

多刷几下崩溃
skiy
2022-03-10 23:04:27 +08:00
About

Microsoft Edge
Version 99.0.1150.30 (Official build) beta (64-bit)
This browser is made possible by the Chromium open source project and other open source software.

Microsoft Edge

不打开控制台,浏览器没崩,页面也没崩。
打开控制台,浏览器没崩,页面崩。
abc612008
2022-03-10 23:26:05 +08:00
@ie88

这当然是 bug ,浏览器在任何情况下都不应该崩溃。这里的正常行为是发出下面这样一个 warning ,然后 Audio 没有被自动播放。

The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#webaudio

如果你打开楼主那个网页的话也能看到这么一个 warning 。如果你再仔细看的话,这里崩溃的时刻已经是在 user gesture 之后了(用户点击网页后才执行的代码)。所以崩溃很可能和 autoplay 关系不大,或者最多是这个 autoplay policy 的 unintended 副作用(bug)。

其次,崩溃的错误代码是 STATUS_ACCESS_VIOLATION. Access violation 通常指代的是访问一块没有对应权限的内存。显然这和你所说的 autoplay policy 没有什么关系。

如果你还坚持这是个正常行为的话,那怎么解释这个网页有时候崩有时候不崩呢。
kilasuelika
2022-03-11 00:03:28 +08:00
安卓 101 版本,第一次打开时崩了,后来就没有了
her999
2022-03-11 01:52:29 +08:00
版本 99.0.4844.51 (正式版本) ( 64 位) for linux 复现成功。点一下,稍等一会,奔溃。
maomaochong199
2022-03-11 04:18:47 +08:00
@xtinput 你怎么在用 arm 架构,是什么机子啊
baysonfox
2022-03-11 07:54:44 +08:00
Microsoft Edge 99.0.1150.39 (x86_64) 复现不稳定,10 次测试内有 3~5 次失败, 其余成功复现.
l4ever
2022-03-11 08:39:14 +08:00
360 极速 x
内核 95, 扛住了.
shakoon
2022-03-11 08:40:52 +08:00
@Mac #116 我发觉每一个被我长期使用的浏览器最后都会倒闭……十几年前 maxthon2 我用了好多年,被收购后改得惨不忍睹。后来 chrome 崛起后用的枫树浏览器也是莫名其妙的倒闭了,一直用到大约 18 年好多网页都显示不正常了才不得不换。现在百分一年多没更新,不知是不是也凉了。目前倒是没遇到什么网站不兼容,但愿能多撑一段时间吧。
话说这家小公司国内外用户还是不少的,真要是经济困难开放一个捐助通道我觉得还是能募集到一些资金的。我觉得更大的可能性是因为动到了被某大厂的蛋糕,被悄悄收购了然后安乐死
xtinput
2022-03-11 08:47:36 +08:00
@maomaochong199 #133 21 款 16 寸 M1Max
yxzblue
2022-03-11 08:56:01 +08:00
Chrome 98.0.4758.102 没崩
heliang
2022-03-11 09:07:03 +08:00
chrome 版本 99.0.4844.51 (正式版本) (arm64)
崩溃
yveJohn
2022-03-11 09:34:11 +08:00
Microsoft Edge
版本 98.0.1108.43 (官方内部版本) (64 位)
未复现
yxisenx
2022-03-11 09:40:40 +08:00
崩了, 版本 99.0.4844.51 (正式版本) ( 64 位)
acess
2022-03-11 10:16:21 +08:00
chrome 的 audioworklet 好像还有内存泄漏 bug 来着,各种 disconnect 、close context 都删不掉,所以如果反复创建就可能爆内存。

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

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

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

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

© 2021 V2EX