如何解决无法建立因未捕获异常而断开的 websocket 连接:错误 [ERR_IPC_CHANNEL_CLOSED]:通道已关闭
我的环境详情:
- 操作系统:Ubuntu 20.04
- 节点版本:9.6.1
- Qt 版本:5.9.1
我使用名为 javascript
的 APP
构建前端应用程序。 APP接收客户端的请求,并与负责创建worker的Browser Service(一个node js服务)建立websocket连接。Browser Service在过程中使用了一些原生的依赖(用c++编写)。架构如下:
我可以毫无问题地启动所有服务。当我尝试创建进程时,它失败并显示以下错误:
Using browser engine: webkit
[2021-03-19 11:34:27.042] [INFO] browser_service/src/routes/session.js - [MASTER: 16688] Worker done [pid: 20764,exit:0 SIGSEGV]
[2021-03-19 11:34:27.042] [INFO] browser_service/src/routes/session.js - [MASTER: 16688] Unbound socket for worker [PID: 20764,ID: BrowserRemote-1616148965600]
[2021-03-19 11:34:27.042] [INFO] browser_service/src/routes/session.js - [MASTER: 16688] Worker disconnected (server namespace disconnect),starting self-destruct timeout to a few seconds from now [pid: 20764,id: BrowserRemote-1616148965600]
payload server namespace disconnect
[2021-03-19 11:34:27.042] [ERROR] browser_service/index.js - [MASTER: 16688] Uncaught exception: Error [ERR_IPC_CHANNEL_CLOSED]: Channel closed
at ChildProcess.target.send (internal/child_process.js:596:16)
at unbindWorker (/home/rando/Desktop/git/master-node/node/browser_service/src/routes/session.js:76:24)
at Socket.socketDisconnectHandler (/home/rando/Desktop/git/master-node/node/browser_service/src/routes/session.js:26:13)
at Socket.emit (events.js:132:15)
at Socket.emit (/home/rando/Desktop/git/master-node/node/browser_service/node_modules/socket.io/lib/socket.js:128:10)
at Socket.onclose (/home/rando/Desktop/git/master-node/node/browser_service/node_modules/socket.io/lib/socket.js:425:8)
at Socket.disconnect (/home/rando/Desktop/git/master-node/node/browser_service/node_modules/socket.io/lib/socket.js:453:10)
at ChildProcess.workerExitHandler (/home/rando/Desktop/git/master-node/node/browser_service/src/routes/session.js:53:27)
at ChildProcess.emit (events.js:127:13)
at Process.ChildProcess._handle.onexit (internal/child_process.js:209:12)
Error [ERR_IPC_CHANNEL_CLOSED]: Channel closed
at ChildProcess.target.send (internal/child_process.js:596:16)
at unbindWorker (/home/rando/Desktop/git/master-node/node/browser_service/src/routes/session.js:76:24)
at Socket.socketDisconnectHandler (/home/rando/Desktop/git/master-node/node/browser_service/src/routes/session.js:26:13)
at Socket.emit (events.js:132:15)
at Socket.emit (/home/rando/Desktop/git/master-node/node/browser_service/node_modules/socket.io/lib/socket.js:128:10)
at Socket.onclose (/home/rando/Desktop/git/master-node/node/browser_service/node_modules/socket.io/lib/socket.js:425:8)
at Socket.disconnect (/home/rando/Desktop/git/master-node/node/browser_service/node_modules/socket.io/lib/socket.js:453:10)
at ChildProcess.workerExitHandler (/home/rando/Desktop/git/master-node/node/browser_service/src/routes/session.js:53:27)
at ChildProcess.emit (events.js:127:13)
at Process.ChildProcess._handle.onexit (internal/child_process.js:209:12) Error [ERR_IPC_CHANNEL_CLOSED]: Channel closed
at ChildProcess.target.send (internal/child_process.js:596:16)
at unbindWorker (/home/rando/Desktop/git/master-node/node/browser_service/src/routes/session.js:76:24)
at Socket.socketDisconnectHandler (/home/rando/Desktop/git/master-node/node/browser_service/src/routes/session.js:26:13)
at Socket.emit (events.js:132:15)
at Socket.emit (/home/rando/Desktop/git/master-node/node/browser_service/node_modules/socket.io/lib/socket.js:128:10)
at Socket.onclose (/home/rando/Desktop/git/master-node/node/browser_service/node_modules/socket.io/lib/socket.js:425:8)
at Socket.disconnect (/home/rando/Desktop/git/master-node/node/browser_service/node_modules/socket.io/lib/socket.js:453:10)
at ChildProcess.workerExitHandler (/home/rando/Desktop/git/master-node/node/browser_service/src/routes/session.js:53:27)
at ChildProcess.emit (events.js:127:13)
at Process.ChildProcess._handle.onexit (internal/child_process.js:209:12)
[2021-03-19 11:34:27.043] [ERROR] browser_service/index.js - [MASTER: 16688] Uncaught exception: Error [ERR_IPC_CHANNEL_CLOSED]: Channel closed
at ChildProcess.target.send (internal/child_process.js:596:16)
at Socket.socketEventHandlers.(anonymous function) (/home/rando/Desktop/git/master-node/node/browser_service/src/routes/session.js:67:28)
at Socket.emit (events.js:132:15)
at Socket.emit (/home/rando/Desktop/git/master-node/node/browser_service/node_modules/socket.io/lib/socket.js:128:10)
at Socket.onclose (/home/rando/Desktop/git/master-node/node/browser_service/node_modules/socket.io/lib/socket.js:425:8)
at Socket.disconnect (/home/rando/Desktop/git/master-node/node/browser_service/node_modules/socket.io/lib/socket.js:453:10)
at ChildProcess.workerExitHandler (/home/rando/Desktop/git/master-node/node/browser_service/src/routes/session.js:53:27)
at ChildProcess.emit (events.js:127:13)
at Process.ChildProcess._handle.onexit (internal/child_process.js:209:12)
Error [ERR_IPC_CHANNEL_CLOSED]: Channel closed
at ChildProcess.target.send (internal/child_process.js:596:16)
at Socket.socketEventHandlers.(anonymous function) (/home/rando/Desktop/git/master-node/node/browser_service/src/routes/session.js:67:28)
at Socket.emit (events.js:132:15)
at Socket.emit (/home/rando/Desktop/git/master-node/node/browser_service/node_modules/socket.io/lib/socket.js:128:10)
at Socket.onclose (/home/rando/Desktop/git/master-node/node/browser_service/node_modules/socket.io/lib/socket.js:425:8)
at Socket.disconnect (/home/rando/Desktop/git/master-node/node/browser_service/node_modules/socket.io/lib/socket.js:453:10)
at ChildProcess.workerExitHandler (/home/rando/Desktop/git/master-node/node/browser_service/src/routes/session.js:53:27)
at ChildProcess.emit (events.js:127:13)
at Process.ChildProcess._handle.onexit (internal/child_process.js:209:12) Error [ERR_IPC_CHANNEL_CLOSED]: Channel closed
at ChildProcess.target.send (internal/child_process.js:596:16)
at Socket.socketEventHandlers.(anonymous function) (/home/rando/Desktop/git/master-node/node/browser_service/src/routes/session.js:67:28)
at Socket.emit (events.js:132:15)
at Socket.emit (/home/rando/Desktop/git/master-node/node/browser_service/node_modules/socket.io/lib/socket.js:128:10)
at Socket.onclose (/home/rando/Desktop/git/master-node/node/browser_service/node_modules/socket.io/lib/socket.js:425:8)
at Socket.disconnect (/home/rando/Desktop/git/master-node/node/browser_service/node_modules/socket.io/lib/socket.js:453:10)
at ChildProcess.workerExitHandler (/home/rando/Desktop/git/master-node/node/browser_service/src/routes/session.js:53:27)
at ChildProcess.emit (events.js:127:13)
at Process.ChildProcess._handle.onexit (internal/child_process.js:209:12)
如果您能帮助我解决此问题,我将不胜感激。
更新
据我所知,Error [ERR_IPC_CHANNEL_CLOSED]: Channel closed
表示正在尝试向已关闭的进程发送消息。似乎工人死了,工人的消息exit:0 SIGSEGV
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。