在进程间消息中未发现 IPIPE.js 在快速连续重建中崩溃 app
□ 气象版
- 气象学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管已经被撕下时(例如当
. . . . . . .
内容来源: meteor/meteor