【问题标题】:Strange NodeJS websocket based app crash when running idle for a long time长时间空闲运行时奇怪的基于 NodeJS websocket 的应用程序崩溃
【发布时间】:2022-08-20 05:51:57
【问题描述】:

我对一个小型节点 js 应用程序有一个令人费解的问题,它作为多人纸牌游戏网络应用程序的后端运行。
它在 Ubuntu 服务器 22.04 上运行。 Nodejs 是 16.17.0 LTS 版本。
它使用内置模块 https 和 fs,此外它还使用 websockets WS-module 版本 8.8.1
它以非特权用户身份运行。
基本上,后端使用 websocket-connections 在在线卡片播放器之间来回发送消息。这工作得很好,人们玩了几个小时,而且似乎没有问题。
问题是:
如果后端长时间闲置,可能是 3-4 小时,那么当连接请求进来时,它似乎会崩溃。
我拥有的唯一信息是服务器 /var/log/apport.log 中的一个条目,上面写着

错误:apport(pid 3093)2022 年 8 月 18 日星期四 08:10:21:调用 pid 847,信号 6,核心限制 0,转储模式 1

错误:apport(pid 3093)2022 年 8 月 18 日星期四 08:10:21:可执行文件:/usr/bin/node(命令行 \"node /home/cardbackend/websocket/start\")

错误:apport (pid 3093) Thu Aug 18 08:10:21 2022: is_closing_session(): no DBUS_SESSION_BUS_ADDRESS in environment

我对 nodejs 没有太多经验,但也许你们中的一些人知道这是什么原因。 我的猜测是它可能与环境变量或类似的东西有关。

那里有任何 Nodejs 向导吗?

    标签: javascript node.js linux ubuntu websocket


    【解决方案1】:

    看起来正在提高 SIGABT

    错误:apport(pid 3093)2022 年 8 月 18 日星期四 08:10:21:调用 pid 847,信号 6, 核心限制 0, 转储模式 1

    很多事情都可能导致信号 6/SIGABT,但考虑到应用程序的长时间运行性质,我将开始查看磁盘空间、内存、cpu 等资源,同时检查操作系统日志中是否有任何其他信息。

    【讨论】:

      猜你喜欢
      • 2014-01-17
      • 1970-01-01
      • 1970-01-01
      • 2015-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多