Chat Messages panel crashes with OOM when database has large volume of messages — no pagination or default limit

用户通过 Docker 自托管 Flowise(版本 3.1.0),使用 SQLite 或 PostgreSQL 17 作为数据库,在仪表板的 Chat Messages 面板中浏览消息时触发。面板默认加载最近 30 天的所有消息,在高消息量(约 15.7 万条)下导致崩溃。

Chat Messages panel crashes with OOM when database has large volume of messages — no pagination or default limit

Chat Messages panel crashes with OOM when database has large volume of messages — no pagination or default limit

快速结论:该问题通常发生在 Flowise 仪表板的 Chat Messages 面板中,当数据库积累大量消息(约 15.7 万条)时,Node.js 因一次性加载全部消息并序列化为 JSON 而导致堆内存溢出(OOM)。优先排查的是是否使用了服务器端分页或缩短默认日期范围。

问题场景

用户通过 Docker 自托管 Flowise(版本 3.1.0),使用 SQLite 或 PostgreSQL 17 作为数据库,在仪表板的 Chat Messages 面板中浏览消息时触发。面板默认加载最近 30 天的所有消息,在高消息量(约 15.7 万条)下导致崩溃。

报错原文


[1:0x7fcef78f2660] Mark-Compact 8036.4 (8238.9) -> 8036.4 (8238.9) MB, 
626.75 / 0.00 ms allocation failure; scavenge might not succeed

FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory

原因分析

根本原因在于 Chat Messages 面板缺乏服务器端分页和默认日期限制。面板在用户有机会更改日期过滤器之前,自动加载最近 30 天的全部消息。针对数据库中的 ~15.7 万条消息,Node.js 试图一次性将所有消息序列化为 JSON 并加载到内存中,消耗 8-12 GB 内存后导致堆内存溢出。此问题不依赖于数据库后端,使用 SQLite 和 PostgreSQL 17 均可复现。数据库本身查询速度较快,瓶颈在 Node.js 内存处理。

环境排查

  • Flowise 版本:3.1.0(自托管,Docker 方式)
  • 数据库:SQLite 或 PostgreSQL 17
  • 消息量:约 15.7 万条
  • 运行环境:Linux、Docker
  • 浏览器:Chrome(任意浏览器均可复现)

解决步骤

  1. 临时解决方法(仅缓解,非修复): 增加 Node.js 堆内存限制。在 Flowise 的 Docker 环境变量中添加 NODE_OPTIONS="--max-old-space-size=16384"(16 GB)。此方法仅作为应急,不能解决根本的分页问题。
  2. 期望的永久修复(需开发者实现): 实施服务器端分页,配置每页消息数,例如 100-500 条每页。
  3. 允许通过环境变量(例如 CHATMESSAGE_DEFAULT_DAYS=7)配置默认日期范围,或默认将初始加载窗口缩短为 7 天。
  4. 采用流式加载或懒加载,先加载当前视口可见的消息,而非一次性加载全部。
  5. 对于用户:可优先尝试缩减数据库中的消息量,或使用更短的时间窗口手动查询(如果面板已支持)。

验证方法

在实施服务器端分页或缩短默认日期范围后,重新导航至 Chat Messages 面板。确认面板能够加载页面(例如每页 100 条消息),且浏览器不出现内存溢出崩溃。对于同样包含大量消息的数据库,应确保不再出现 “FATAL ERROR: Reached heap limit Allocation failed – JavaScript heap out of memory” 报错。

参考来源

FlowiseAI/Flowise #6038

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

celebrityanime
celebrityanime
文章: 7987

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注