启动后缺少外部解析器静默地杀死服务器 5s
作者: mattgodbolt创建于 2026年8月22日更新于 2026年8月22日
当缺少外部解析器二进制文件时,`ExternalParserBase`(`lib/external-parsers/base.ts:51-57`,在`plain.ts:23-30`中重复)会记录错误日志,调度`setTimeout(() => process.exit(1), 5000)`,并抛出错误。`CompileHandler.create`(`lib/handlers/compile.ts:301`)捕获了这个错误,并重新标记为"无法统计 <id> 编译器二进制文件" - 因此它看起来像普通的发现噪音,并折叠到"无法创建 N 个编译器中的 M 个编译器"。五秒钟后,孤儿定时器触发并退出 1,没有任何输出。在本地,情况看起来是这样:完整启动,"正在监听 http://localhost:10240/"、标记,然后从 node 的监视模式中运行"Failed running './app.ts'",除此之外没有其他内容。真正的错误出现在 2223 行(共 2369 行),大约 150 行以上,数百条视觉上完全相同的"无法统计 ... ENOENT"警告。(触发因素: `Rust.amazon.properties` 在文件作用域中设置了 `externalparser.exe=/usr/local/bin/asm-parser`,而 gcc 16.2.0(#8998)添加了一个实际上存在于开发机上的 `gccrs`,因此解析器最终被构建成功。
内容来源: compiler-explorer/compiler-explorer