“Aw, Snap!”和ASR:Chrome中套接字缓冲区错误

3
我有一个带有大量JS脚本的Web应用程序(通过“大量”我意思是很多客户端处理无法在服务器端完成)。处理1小时左右后(不是持续的),我会收到Chrome的“噢,崩溃了!”错误。我已经按照https://superuser.com/questions/607563/how-to-determine-what-is-causing-chrome-to-show-the-aw-snap-dialogue中建议的进行了调试,并且注意到每次出现错误时,日志都会提示WARNING:audio_sync_reader.cc(177)] ASR: No room in socket buffer.
我强烈认为我有点内存不足,因为如果在此错误之后打开其他选项卡,则会得到其他的“噢,崩溃了!”错误。
然而,考虑到我的JS脚本很长,需要很长时间才能抛出错误,我该如何确定哪一段代码引发了这个错误?
PS:我还有许多DOM操作(主要是在表格上插入)。
谢谢!

1
我没有答案给你,但是你有使用开发者工具面板来观察资源消耗吗?除此之外,分而治之的一般调试技术(阅读[MCVE])也适用。是的,这可能是一个漫长而繁琐的过程。欢迎来到丛林 ;) - Lightness Races in Orbit
我也遇到了使用tone.js的问题,如果你也有这个问题,请查看这里:https://github.com/Tonejs/Tone.js/issues/353 - Fanky
2个回答

0

问题不一定出在某一行或某个代码块上,而是你的应用程序消耗了太多内存。这可能是由于内存泄漏引起的,你可以通过查看调试器的内存选项卡来识别它。如果没有内存泄漏,你应该重新考虑你的代码结构。


0

我遇到了类似的问题:

[0225/064309.871791:WARNING:audio_sync_reader.cc(175)] ASR: No room in socket buffer.: Broken pipe (32)

我在Docker容器中以无头模式运行Chrome。上面的警告是由于Linux的/dev/shm共享内存空间相关的另一个内存问题引起的。这个页面对它进行了更详细的描述:

https://github.com/puppeteer/puppeteer/blob/master/docs/troubleshooting.md#tips

Docker 只为 /dev/shm 分配了 64MB 的空间。我猜 Chrome 使用 /dev/shm 存储当前浏览器标签加载的未压缩图片。至少这可以解释为什么只有当网站包含一个或多个大型图片时,Chrome 才会失败。 ASR: No room in socket buffer. 错误只是占用 /dev/shm 的大型图片的副作用。

使用 --disable-dev-shm-usage Chrome 命令行标志解决了这个问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接