Discourse 更新错误与 Terser

大家好,

我在通过管理员面板更新我的 Discourse 论坛时遇到了问题,我需要一些帮助来弄清楚出了什么问题。当我尝试更新时,出现一条错误信息,并且它会停止整个过程。以下是发生的情况:
我正在使用管理员面板中的“更新Discourse”功能进行更新。

在从管理员面板更新Discourse时,反复显示“False False False”,然后出现一个错误,提示“更新Discourse失败”,伴随这个错误。> false - ./node_modules/.bin - /var/www/discourse/node_modules/.bin - /var/www/discourse/vendor/bundle/ruby/3.3.0/bin - /usr/local/sbin - /usr/local/bin - /usr/sbin - /usr/bin - /sbin - /bin 平台:linux x64 可用内存:61129658368 总内存:67272630272 运行时间:30579.58 负载平均:1.15,0.42,0.16 CPU: - 英特尔(R) 至强(R) E-2276G CPU @ 3.80GHz - 4300 - 英特尔(R) 至强(R) E-2276G CPU @ 3.80GHz - 3223 - 英特尔(R) 至强(R) E-2276G CPU @ 3.80GHz - 2548 - 英特尔(R) 至强(R) E-2276G CPU @ 3.80GHz - 4039 - 英特尔(R) 至强(R) E-2276G CPU @ 3.80GHz - 1358 - 英特尔(R) 至强(R) E-2276G CPU @ 3.80GHz - 1200 - 英特尔(R) 至强(R) E-2276G CPU @ 3.80GHz - 1200 - 英特尔(R) 至强(R) E-2276G CPU @ 3.80GHz - 1200 - 英特尔(R) 至强(R) E-2276G CPU @ 3.80GHz - 3954 - 英特尔(R) 至强(R) E-2276G CPU @ 3.80GHz - 1200 - 英特尔(R) 至强(R) E-2276G CPU @ 3.80GHz - 1199 - 英特尔(R) 至强(R) E-2276G CPU @ 3.80GHz - 1676 字节序:LE 版本: - acorn: 8.14.0 - ada: 2.9.2 - amaro: 0.3.0 - ares: 1.34.4 - brotli: 1.1.0 - cjs_module_lexer: 1.4.1 - cldr: 46.0 - icu: 76.1 - llhttp: 9.2.1 - 模块:127 - napi: 10 - nbytes: 0.1.1 - ncrypto: 0.0.1 - nghttp2: 1.64.0 - nghttp3: 1.6.0 - ngtcp2: 1.10.0 - node: 22.14.0 - openssl: 3.0.15+quic - simdjson: 3.10.1 - simdutf: 6.0.3 - sqlite: 3.47.2 - tz: 2024b - undici: 6.21.1 - unicode: 16.0 - uv: 1.49.2 - uvwasi: 0.0.21 - v8: 12.4.254.21-node.22 - zlib: 1.3.0.1-motley-82a5fec 错误摘要: - broccoliBuilderErrorStack: 错误:assets/chunk.cbb4d6362a2090db10ec.d41d8cd9.js 来自 Terser 插件未能处理:无法将内容打印到 stdout:资源暂时不可用(操作系统错误 11) 错误:未能处理:无法将内容打印到 stdout:资源暂时不可用(操作系统错误 11) 在 TerserPlugin.buildError (/var/www/discourse/node_modules/.pnpm/terser-webpack-plugin@5.3.11_@swc+core@1.11.1_esbuild@0.25.0_webpack@5.98.0_@swc+core@1.11.1_esbuild@0.25.0_/node_modules/terser-webpack-plugin/dist/index.js:266:20) 在 /var/www/discourse/node_modules/.pnpm/terser-webpack-plugin@5.3.11_@swc+core@1.11.1_esbuild@0.25.0_webpack@5.98.0_@swc+core@1.11.1_esbuild@0.25.0_/node_modules/terser-webpack-plugin/dist/index.js:455:26 - 代码: [未定义] - 代码框架:assets/chunk.cbb4d6362a2090db10ec.d41d8cd9.js 来自 Terser 插件未能处理:无法将内容打印到 stdout:资源暂时不可用(操作系统错误 11) 错误信息:assets/chunk.cbb4d6362a2090db10ec.d41d8cd9.js:assets/chunk.cbb4d6362a2090db10ec.d41d8cd9.js 来自 Terser 插件未能处理:无法将内容打印到 stdout:资源暂时不可用(操作系统错误 11) 在 PackagerRunner (@embroider/webpack) - 错误类型:构建错误 - 位置: - 列: [未定义] - 文件:资产/chunk.cbb4d6362a2090db10ec.d41d8cd9.js - 行:[null] - 树目录:[未定义] - 信息:assets/chunk.cbb4d6362a2090db10ec.d41d8cd9.js:来自 Terser 插件的 assets/chunk.cbb4d6362a2090db10ec.d41d8cd9.js 处理失败:未能成功打印到 stdout:资源暂时不可用(操作系统错误 11)错误:未能处理:未能成功打印到 stdout:资源暂时不可用(操作系统错误 11) 暂存器 @embroider/webpack - 名称:错误 - nodeAnnotation:@embroider/webpack - nodeName:PackagerRunner - 原始错误信息:assets/chunk.cbb4d6362a2090db10ec.d41d8cd9.js:来自 Terser 插件的文件处理失败:未能成功打印到 stdout:资源暂时不可用(操作系统错误 11)错误:未能处理:未能成功打印到 stdout:资源暂时不可用(操作系统错误 11) - 堆栈:错误:assets/chunk.cbb4d6362a2090db10ec.d41d8cd9.js:来自 Terser 插件的文件处理失败:未能成功打印到 stdout:资源暂时不可用(操作系统错误 11)错误:未能处理:未能成功打印到 stdout:资源暂时不可用(操作系统错误 11) 在 TerserPlugin.buildError (/var/www/discourse/node_modules/.pnpm/terser-webpack-plugin@5.3.11_@swc+core@1.11.1_esbuild@0.25.0_webpack@5.98.0_@swc+core@1.11.1_esbuild@0.25.0_/node_modules/terser-webpack-plugin/dist/index.js:266:20) 在 /var/www/discourse/node_modules/.pnpm/terser-webpack-plugin@5.3.11_@swc+core@1.11.1_esbuild@0.25.0_webpack@5.98.0_@swc+core@1.11.1_esbuild@0.25.0_/node_modules/terser-webpack-plugin/dist/index.js:455:26 …

可能是虚拟内存不足:尝试增加 RAM 或添加交换空间。(Fork 失败并出现 EAGAIN 可能是 内存短缺)

请查看

free -h
vmstat 5 5

有两个内核可调参数可以提高内存效率

cat /proc/sys/vm/overcommit_memory
cat /sys/kernel/mm/transparent_hugepage/enabled

(参见 MKJ 的主观 Discourse 部署配置)

2 个赞

@Ed_S 谢谢。我有 67 GB 的可用内存,其中 61 GB 是可用的。会不会还是虚拟内存?

这很多,但 vmstat 和 free 可以告诉我们它的使用情况。

你检查过 dmesg 的输出,看是否有关于内存和 OOM 的消息吗?

你的数据库有多大?

您最近运行过命令行重建吗?您是否看过 PostgreSQL 15 更新

1 个赞

抱歉延迟回复。问题似乎自行消失了,原因不明。我认为这可能是/是一个插件的问题,因为我禁用了所有插件后,网站的管理员面板更新正常。我本以为重新启用插件后问题会再次出现,但并没有。我需要再次检查一下,看它是否会再次出现。

感谢您的协助。