#14755·meteor

在进程间消息中未发现 IPIPE.js 在快速连续重建中崩溃 app

作者: anahar1创建于 2026年9月14日更新于 2026年9月15日
标签modern-build-stack

□ 气象版

  • 气象学3.5.2
  • 也可在气象器3.5.1上复制。

□ 最后已知的工作版本

不详。

□ 操作系统

  • Linux / WSL2 调制解析器
  • 也由队友在macOS上转载

□ 说明

快速连续保存若干次对服务器有影响的文件,可能会以未发现的EPIPE ' 例外,崩溃整个meteor run ' 进程。

这个在新创建的Meteor应用程序上再现,似乎并不依赖于任何应用程序的特定代码.

当一个构建/运行中的儿童进程被杀死,为新的进程让路时,即发生碰撞,而其进程间的信息准备握手仍在进行中。

□再现.

最小复制存储器:https://GitHub.com/anahar1/simple-meteor-app

{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? git Clone https://GitHub.com/anahar1/simple-meteor-app 互联网档案馆的存檔,存档日期2014-12-20. cd 简单计算程序 流星 npm 安装 流星运行 -- -- 端口 3000


应用程序运行后,会快速修改服务器文件数次,例如:

{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
(单位:美元;
回声“ // 编辑 $i ” @% server/ main.js
睡觉0.25
已执行

在一两个重建区内发生车祸

这在完全股权应用上也转载:

{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? 流星创建测试应用 cd 测试应用 流星 npm 安装 流星运行 -- -- 端口 3000


...然后运行相同的修改循环。

□ 预期行为

快速连续的文件更改应像往常一样触发重建/重启. 即使一个儿童程序在临时行政委员会行动尚未结束时被杀死, " 探测器运行 " 应当优雅地处理封闭的管子,而不是直接崩溃。

□ 实际行为

整个 " 探测器运行 " 过程以未发现的 " EPIPE " 结束:

页:1
节点: 内部/子进程: 900
Const ex = 新的 Errno 例外(err,"write");
^

错误: 写入 EPIPE
at ChildProcess.target. send(节点:内部/ child 进程:900:20)
at ChildProcess.goal.send(节点:内部/child 进程:775:19)
at Timeout.poll [as on Timeout] (包/进程间消息.js:203:26) (中文(简体) ).
在列表 OnTimeout(节点:内部/计时器:605:17)
处理时间器( 节点: 内部/ 计时器: 541: 7) {
错误: -32,
代码:EPIPE,
syscall:"写作"
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?

Node.js v24.15.0 (英语).

这杀死了整个dev服务器,而不仅仅是应用程序——代理服务器和HMR服务器也随之下架.

可能因为

坠机源于packages/进程间信息/进程间信息.js'中的make ReadyPromise ()'。 其 " poll() " 功能使新产出的儿童过程处于后退状态,直至其做好准备:

{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你来干什么? 函数民调(){ 如果( readyResolvers.has (pingMessage.id)) {(已准备好的Resolvers.has){(pingMessage.id){(已准备好的Resolvers.has){(已准备好的Resolvers.has)){(已准备的) 其他 process.send( PingMessage, 错误 {{{ 如果( 错误) { 拒绝( 错误) ; 否则 setTimeout( 弹出, 延迟 ms) ; 延迟 ms QQ后退 因素; {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?

  • ; {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?

`其他Process.send ()'预计会通过回调报告失败情况——在同一档案的其他地方甚至有一个`Graceful Error-Handler',当`EPIPE'以这种方式到达时,明确无视它。 但当孩子的IPC管已经被撕下时(例如当
. . . . . . .