“啊,啪!”和 ASR:Chrome 中的套接字缓冲区错误没有空间
Posted
技术标签:
【中文标题】“啊,啪!”和 ASR:Chrome 中的套接字缓冲区错误没有空间【英文标题】:"Aw, Snap!" and ASR: No room in socket buffer errors in Chrome 【发布时间】:2018-08-29 09:55:37 【问题描述】:我有一个带有繁重 JS 脚本的 Web 应用程序(我所说的繁重是指无法在服务器端完成的大量客户端处理)。
经过大约 1 小时(不是恒定的)处理后,我收到 Chrome 的 "Aw, Snap!" 错误,我已按照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.
我坚信我的内存有点用完了,因为如果我在此错误之后打开其他选项卡,我会得到其他选项卡 “Aw,Snap!”。
但是,考虑到我的 JS 脚本很长,并且抛出错误需要很长时间,我如何确定是哪段代码引发了它?
PS.:我也有很多 DOM 操作(主要是在表格上插入)
谢谢!
【问题讨论】:
我没有给你答案,但你有没有使用开发者工具面板来观察资源消耗?除此之外,分治法(阅读minimal reproducible example)的一般调试技术也适用。是的,这可能是一个漫长而乏味的过程。欢迎来到丛林;) 我在使用tone.js时也遇到了同样的情况,如果你这样做了,请查看github.com/Tonejs/Tone.js/issues/353 【参考方案1】:不一定是某一行或一段代码。只是您的应用程序消耗了大量内存。这可能是由内存泄漏引起的,您可以通过查看调试器内存选项卡来识别它。如果没有内存泄漏,您应该过度考虑您的代码结构。
【讨论】:
【参考方案2】:我也有类似的问题:
[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 命令行标志解决了这个问题。
【讨论】:
以上是关于“啊,啪!”和 ASR:Chrome 中的套接字缓冲区错误没有空间的主要内容,如果未能解决你的问题,请参考以下文章