OOM Fails Fast S1
中文标题:OOM 快速失败
提案概览
- 阶段: Stage 1
- 状态: 进行中
- ECMAScript 版本: —
- 同步时间: 2026年8月26日
- English original · 官方仓库
提案速览
该提案引入了一个宿主钩子和一个内置方法来处理致命故障。HostFaultHandler 钩子允许宿主对内部故障条件做出反应,可能会终止当前的计算单元。Reflect.panic 方法让 JavaScript 代码显式触发此钩子。
Note
以下 README 来自上游仓库,其中的阶段或状态标注可能滞后;当前信息以提案概览为准。
不要记得恐慌
一个 TC39 提案,旨在提供:
- 一个
HostFaultHandler钩子,用于可选地立即终止计算的外围单元。 - 一个内置的
panic方法,用于显式调用HostFaultHandler
状态
已作为 OOM 必须快速失败 达到第 1 阶段
共同提案人
- Mark S. Miller, Agoric (@erights)
- Peter Hoddie, Moddable (@phoddie)
- Zbyszek Tenerowicz (@naugtur)
- Christopher Hiller (@boneskull)
演讲
-
第 1 阶段更新 - 2025 年 4 月全体会议 - "不要记得恐慌" (keynote 幻灯片, pdf 幻灯片, 视频)
内容
- 一个新的宿主钩子
用于在各种内部故障条件下被调用,以便宿主可以根据其策略做出反应。包括突然终止“最小可中止计算单元”,例如代理集群。
- 一个新的内置函数
这样 JavaScript 代码可以直接触发故障到 HostFaultHandler。
参见 @endo/panic 获取该提案中 panic 函数的一个不完美的 polyfill。
动机
参见 OOM 必须快速失败 了解原始动机和理由,其中大部分仍然有趣且有效。
参见 "不要记得恐慌" 第 1 阶段更新 (keynote 幻灯片, pdf 幻灯片) 了解扩展的动机和理由
致谢
感谢 Felipe Natal 让我们注意到一个问题,这个问题
- 重新激发了我们对这个旧 "OOM 必须快速失败" 提案的兴趣。
- 需要添加用户
panic操作来解决。