Terser 관련 Discourse 업데이트 오류

안녕하세요 여러분,

관리자 패널을 통해 Discourse 포럼을 업데이트하는 데 문제가 생겨 원인을 파악하는 데 도움이 필요합니다. 업데이트를 시도하면 오류 메시지가 표시되고 전체 프로세스가 중단됩니다. 현재 상황은 다음과 같습니다:
관리자 패널의 ‘Update 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 PLATFORM: linux x64 FREEMEM: 61129658368 TOTALMEM: 67272630272 UPTIME: 30579.58 LOADAVG: 1.15,0.42,0.16 CPUS: - Intel(R) Xeon(R) E-2276G CPU @ 3.80GHz - 4300 - Intel(R) Xeon(R) E-2276G CPU @ 3.80GHz - 3223 - Intel(R) Xeon(R) E-2276G CPU @ 3.80GHz - 2548 - Intel(R) Xeon(R) E-2276G CPU @ 3.80GHz - 4039 - Intel(R) Xeon(R) E-2276G CPU @ 3.80GHz - 1358 - Intel(R) Xeon(R) E-2276G CPU @ 3.80GHz - 1200 - Intel(R) Xeon(R) E-2276G CPU @ 3.80GHz - 1200 - Intel(R) Xeon(R) E-2276G CPU @ 3.80GHz - 1200 - Intel(R) Xeon(R) E-2276G CPU @ 3.80GHz - 3954 - Intel(R) Xeon(R) E-2276G CPU @ 3.80GHz - 1200 - Intel(R) Xeon(R) E-2276G CPU @ 3.80GHz - 1199 - Intel(R) Xeon(R) E-2276G CPU @ 3.80GHz - 1676 ENDIANNESS: LE VERSIONS: - 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 - modules: 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 ERROR Summary: - broccoliBuilderErrorStack: Error: assets/chunk.cbb4d6362a2090db10ec.d41d8cd9.js from Terser plugin failed to handle: failed printing to stdout: Resource temporarily unavailable (os error 11) Error: failed to handle: failed printing to stdout: Resource temporarily unavailable (os error 11) at 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) at /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 - code: [undefined] - codeFrame: assets/chunk.cbb4d6362a2090db10ec.d41d8cd9.js from Terser plugin failed to handle: failed printing to stdout: Resource temporarily unavailable (os error 11) Error: failed to handle: failed printing to stdout: Resource temporarily unavailable (os error 11) - errorMessage: assets/chunk.cbb4d6362a2090db10ec.d41d8cd9.js: assets/chunk.cbb4d6362a2090db10ec.d41d8cd9.js from Terser plugin failed to handle: failed printing to stdout: Resource temporarily unavailable (os error 11) Error: failed to handle: failed printing to stdout: Resource temporarily unavailable (os error 11) at PackagerRunner (@embroider/webpack) - errorType: Build Error - location: - column: [undefined] - file: assets/chunk.cbb4d6362a2090db10ec.d41d8cd9.js - line: [null] - treeDir: [undefined] - message: assets/chunk.cbb4d6362a2090db10ec.d41d8cd9.js: assets/chunk.cbb4d6362a2090db10ec.d41d8cd9.js from Terser plugin failed to handle: failed printing to stdout: Resource temporarily unavailable (os error 11) Error: failed to handle: failed printing to stdout: Resource temporarily unavailable (os error 11) at PackagerRunner (@embroider/webpack) - name: Error - nodeAnnotation: @embroider/webpack - nodeName: PackagerRunner - originalErrorMessage: assets/chunk.cbb4d6362a2090db10ec.d41d8cd9.js from Terser plugin failed to handle: failed printing to stdout: Resource temporarily unavailable (os error 11) Error: failed to handle: failed printing to stdout: Resource temporarily unavailable (os error 11) - stack: Error: assets/chunk.cbb4d6362a2090db10ec.d41d8cd9.js from Terser plugin failed to handle: failed printing to stdout: Resource temporarily unavailable (os error 11) Error: failed to handle: failed printing to stdout: Resource temporarily unavailable (os error 11) at 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) at /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 ================================================================================= Docker Manager: FAILED TO UPGRADE #<RuntimeError: RuntimeError> /var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:211:in run' /var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:112:in upgrade’ /var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:19:in block in <main>' /var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:6:in fork’ /var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:6:in <main>' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/commands/runner/runner_command.rb:44:in load’ /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/commands/runner/runner_command.rb:44:in block in perform' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/execution_wrapper.rb:91:in wrap’ /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/commands/runner/runner_command.rb:70:in conditional_executor' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/commands/runner/runner_command.rb:43:in perform’ /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/thor-1.3.2/lib/thor/command.rb:28:in run' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/thor-1.3.2/lib/thor/invocation.rb:127:in invoke_command’ /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/command/base.rb:178:in invoke_command' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/thor-1.3.2/lib/thor.rb:538:in dispatch’ /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/command/base.rb:73:in perform' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/command.rb:71:in block in invoke’ /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/command.rb:149:in with_argv' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/command.rb:69:in invoke’ /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/commands.rb:18:in <main>' /usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in require’ /usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in block (2 levels) in replace_require' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.18.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in require’ bin/rails:18:in `’ Spinning up 7 Unicorn worker(s) that were stopped initially

제 환경 구성:

Linux (x64 버전)에서 실행 중입니다.

메모리: 총 67GB, 사용 가능 61GB (따라서 메모리 문제라고 생각하지 않습니다).

시스템 부하: 1.15, 0.42, 0.16 .

Node.js 버전 22.14.0 사용 중입니다.

Grok에게 무엇이 문제일 수 있는지 물어보았습니다:
읽어본 바로는, 너무 많은 프로세스가 동시에 콘솔에 쓰기를 시도하여 혼잡이 발생하는 것과 관련이 있을 수 있다고 합니다.

SSH를 통해 ./launcher로 Discourse를 업데이트하면 정상적으로 작동합니다.

어디서부터 시작해야 할지 확신이 서지 않아 아직 많은 시도를 하지 않았습니다. 이 문제를 본 적이 있는 분이 계신가요?

도움 주시면 감사하겠습니다!

가상 메모리 부족일 수 있습니다. RAM을 추가하거나 스왑(swap)을 추가해 보세요. (Fork가 EAGAIN으로 실패하는 경우 메모리 부족일 수 있음)

아래 명령어를 실행해 확인해 보세요.

free -h
vmstat 5 5

메모리 효율을 높일 수 있는 커널 설정값 2가지가 있습니다.

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

(자세한 내용은 MKJ’s Opinionated Discourse Deployment Configuration을 참고하세요.)

@Ed_S 감사합니다. 67GB 중 61GB의 RAM을 사용할 수 있습니다. 그래도 가상 메모리일 수 있을까요?

양이 많지만, vmstat와 free를 통해 어떻게 사용되고 있는지 확인할 수 있습니다.

메모리와 OOM에 관한 메시지가 있는지 dmesg 출력을 확인해 보셨나요?

데이터베이스 크기는 어느 정도인가요?

최근에 커맨드 라인으로 리빌드를 실행해 보셨나요? PostgreSQL 15 업데이트에 대해 확인해 보셨나요?

답변이 늦어 죄송합니다. 문제가 왜 사라졌는지 이해하지 못한 채로 자연스럽게 해결되었습니다. 모든 플러그인을 비활성화했을 때 관리자 패널에서 사이트가 정상적으로 업데이트되었기 때문에 플러그인 때문이라고 생각합니다. 플러그인을 다시 활성화하면 문제가 재발할 것으로 예상했지만, 실제로는 그렇지 않았습니다. 문제가 다시 발생하면 다시 확인해 보겠습니다.

도움 주셔서 감사합니다.