[Daemon node] write can throw and is not caught, crashes NR
还没有人认领这个 Issue。
评估
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 新手友好度
- 35/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 停滞
- 技术栈
- javascript, node.js
- 领域
- backend, networking
调研方向
从 utility/daemon/daemon.js 中 stack trace 引用的 input listener 开始,该位置目前大约在第 53 行,并检查写入和 stream 错误的处理方式。如果可能,请复现或检查偶发的 EPIPE 失败;完成标准是 daemon node 能够处理写入失败而不会导致 Node-RED 崩溃。
由索引模型根据 Issue 内容生成。
描述
Which node are you reporting an issue on?
Daemon
What are the steps to reproduce?
Unknown. Happens sporadically due to unreliable wifi links.
What happens?
Node-RED crashes
15 Nov 10:45:00 - [warn] [daemon:ssh] Restarting : ssh
15 Nov 10:45:01 - [red] Uncaught Exception:
15 Nov 10:45:01 - [error] Error: write EPIPE
at afterWriteDispatched (node:internal/stream_base_commons:160:15)
at writeGeneric (node:internal/stream_base_commons:151:3)
at Socket._writeGeneric (node:net:874:11)
at Socket._write (node:net:886:8)
at writeOrBuffer (node:internal/streams/writable:392:12)
at _write (node:internal/streams/writable:333:10)
at Writable.write (node:internal/streams/writable:337:10)
at DaemonNode.inputlistener [as _inputCallback] (/data/node_modules/node-red-node-daemon/daemon
.js:44:81)
at /usr/src/node-red/node_modules/@node-red/runtime/lib/nodes/Node.js:210:26
at Object.trigger (/usr/src/node-red/node_modules/@node-red/util/lib/hooks.js:166:13)
As of a recent commit Line 44 in daemon.js is now: https://github.com/node-red/node-red-nodes/blob/master/utility/daemon/daemon.js#L53
What do you expect to happen?
I expect the daemon node to catch the exception and handle it gracefully without taking all of NR down.
Please tell us about your environment:
15 Nov 10:45:16 - [info] Node-RED version: v3.0.2
15 Nov 10:45:16 - [info] Node.js version: v18.7.0
15 Nov 10:45:16 - [info] Linux 5.15.0-46-generic x64 LE
- 主要语言
- JavaScript
- 星标
- 1.1k
- 派生
- 610
- 平均合并
- 1 天 4 小时
- 30 天内合并 PR
- 2
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
node-red/node-red-nodes 的其他 Issue
-
难度 3/5 1-2 天 新手友好度 42/100
node-red/node-red-nodes#1151 · 3 条评论 ·
-
难度 3/5 1-2 天 新手友好度 58/100
node-red/node-red-nodes#1142 · 11 条评论 ·
-
难度 4/5 3-5 天 新手友好度 45/100
node-red/node-red-nodes#1141 · 15 条评论 ·
-
难度 4/5 3-5 天 新手友好度 45/100
node-red/node-red-nodes#1130 · 4 条评论 ·
-
dependencies
难度 5/5 一周以上 新手友好度 25/100
node-red/node-red-nodes#1121 · 5 条评论 ·
查看 node-red/node-red-nodes 的全部 Issue
相似的 Issue
-
Progress difficulty filter lists Hard before Medium可能已有人在做 @Pandamachi 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 86/100
sysprog21/codetrial#281 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 71/100
yjh051108/dsh-routing-suite#227 ·
-
难度 2/5 1-3 小时 新手友好度 68/100
-
needs-triage release-watch
难度 1/5 1 小时以内 新手友好度 76/100
-
难度 2/5 1-3 小时 新手友好度 66/100
remoteintech/remote-jobs#2271 ·
维护者通常 1 天内回复