# 尝试更新后崩溃

**URL:** https://meta.discourse.org/t/crash-after-attempting-to-update/403196
**Category:** Bug
**Created:** [2026年五月17日 18:43 UTC](https://meta.discourse.org/t/crash-after-attempting-to-update/403196 "2026-05-17T18:43:32Z")
**Posts on this page:** 15
**Page:** 1

<div class="post-metadata">

### Author: ![TroLLoBlogger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/trolloblogger/32/553637_2.png) [@TroLLoBlogger](https://meta.discourse.org/u/TroLLoBlogger)
#### Post date: [2026年五月17日 18:43 UTC](https://meta.discourse.org/t/crash-after-attempting-to-update/403196/1 "2026-05-17T18:43:32Z")

</div>

尝试通过管理面板更新 Discourse 后，更新过程崩溃，导致我的论坛无法加载。幸运的是，这个问题有解决方案 🙂

请在服务器上打开终端，然后运行以下命令：

> cd /var/discourse

> ./launcher rebuild app

重建完成后，一切恢复正常，论坛也成功更新。我还附上导致该问题的错误日志，因为它与 Discourse 插件有关。

> **日志**
>
> 正在编译 46 个插件…  
> rake aborted!  
> AssetProcessor::TimeoutError: [PLUGIN discourse-doc-categories] 脚本终止：超时 120 秒 (AssetProcessor::TimeoutError)  
> /var/www/discourse/lib/plugin/js\_compiler.rb:32 ‘Plugin::JsCompiler#compile!’  
> /var/www/discourse/lib/plugin/js\_manager.rb:136 ‘Plugin::JsManager#compile\_js\_bundle’  
> /var/www/discourse/lib/plugin/js\_manager.rb:57 ‘block in Plugin::JsManager#compile!’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/parallel-2.1.0/lib/parallel.rb:689 ‘Parallel.call\_with\_index’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/parallel-2.1.0/lib/parallel.rb:659 ‘Parallel.process\_incoming\_jobs’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/parallel-2.1.0/lib/parallel.rb:638 ‘block in Parallel.worker’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/parallel-2.1.0/lib/parallel.rb:629 ‘Process.fork’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/parallel-2.1.0/lib/parallel.rb:629 ‘Parallel.worker’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/parallel-2.1.0/lib/parallel.rb:619 ‘block in Parallel.create\_workers’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/parallel-2.1.0/lib/parallel.rb:618 ‘Array#each’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/parallel-2.1.0/lib/parallel.rb:618 ‘Enumerable#each\_with\_index’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/parallel-2.1.0/lib/parallel.rb:618 ‘Parallel.create\_workers’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/parallel-2.1.0/lib/parallel.rb:557 ‘Parallel.work\_in\_processes’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/parallel-2.1.0/lib/parallel.rb:304 ‘Parallel.map’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/parallel-2.1.0/lib/parallel.rb:248 ‘Parallel.each’  
> /var/www/discourse/lib/plugin/js\_manager.rb:56 ‘Plugin::JsManager#compile!’  
> /var/www/discourse/lib/tasks/assets.rake:27 'block in ’
> 
> 由以下错误引起：  
> AssetProcessor::TimeoutError: 脚本终止：超时 120 秒 (AssetProcessor::TimeoutError)  
> /var/www/discourse/lib/asset\_processor.rb:185 ‘MiniRacer::Context#call’  
> /var/www/discourse/lib/asset\_processor.rb:185 ‘block in AssetProcessor.v8\_call’  
> /var/www/discourse/lib/asset\_processor.rb:184 ‘Thread::Mutex#synchronize’  
> /var/www/discourse/lib/asset\_processor.rb:184 ‘AssetProcessor.v8\_call’  
> /var/www/discourse/lib/asset\_processor.rb:264 ‘AssetProcessor#rollup’  
> /var/www/discourse/lib/plugin/js\_compiler.rb:21 ‘Plugin::JsCompiler#compile!’  
> /var/www/discourse/lib/plugin/js\_manager.rb:136 ‘Plugin::JsManager#compile\_js\_bundle’  
> /var/www/discourse/lib/plugin/js\_manager.rb:57 ‘block in Plugin::JsManager#compile!’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/parallel-2.1.0/lib/parallel.rb:689 ‘Parallel.call\_with\_index’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/parallel-2.1.0/lib/parallel.rb:659 ‘Parallel.process\_incoming\_jobs’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/parallel-2.1.0/lib/parallel.rb:638 ‘block in Parallel.worker’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/parallel-2.1.0/lib/parallel.rb:629 ‘Process.fork’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/parallel-2.1.0/lib/parallel.rb:629 ‘Parallel.worker’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/parallel-2.1.0/lib/parallel.rb:619 ‘block in Parallel.create\_workers’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/parallel-2.1.0/lib/parallel.rb:618 ‘Array#each’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/parallel-2.1.0/lib/parallel.rb:618 ‘Enumerable#each\_with\_index’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/parallel-2.1.0/lib/parallel.rb:618 ‘Parallel.create\_workers’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/parallel-2.1.0/lib/parallel.rb:557 ‘Parallel.work\_in\_processes’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/parallel-2.1.0/lib/parallel.rb:304 ‘Parallel.map’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/parallel-2.1.0/lib/parallel.rb:248 ‘Parallel.each’  
> /var/www/discourse/lib/plugin/js\_manager.rb:56 ‘Plugin::JsManager#compile!’  
> /var/www/discourse/lib/tasks/assets.rake:27 'block in ’
> 
> 由以下错误引起：  
> MiniRacer::ScriptTerminatedError: 已终止 (MiniRacer::ScriptTerminatedError)  
> /var/www/discourse/lib/asset\_processor.rb:185 ‘MiniRacer::Context#call’  
> /var/www/discourse/lib/asset\_processor.rb:185 ‘block in AssetProcessor.v8\_call’  
> /var/www/discourse/lib/asset\_processor.rb:184 ‘Thread::Mutex#synchronize’  
> /var/www/discourse/lib/asset\_processor.rb:184 ‘AssetProcessor.v8\_call’  
> /var/www/discourse/lib/asset\_processor.rb:264 ‘AssetProcessor#rollup’  
> /var/www/discourse/lib/plugin/js\_compiler.rb:21 ‘Plugin::JsCompiler#compile!’  
> /var/www/discourse/lib/plugin/js\_manager.rb:136 ‘Plugin::JsManager#compile\_js\_bundle’  
> /var/www/discourse/lib/plugin/js\_manager.rb:57 ‘block in Plugin::JsManager#compile!’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/parallel-2.1.0/lib/parallel.rb:689 ‘Parallel.call\_with\_index’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/parallel-2.1.0/lib/parallel.rb:659 ‘Parallel.process\_incoming\_jobs’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/parallel-2.1.0/lib/parallel.rb:638 ‘block in Parallel.worker’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/parallel-2.1.0/lib/parallel.rb:629 ‘Process.fork’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/parallel-2.1.0/lib/parallel.rb:629 ‘Parallel.worker’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/parallel-2.1.0/lib/parallel.rb:619 ‘block in Parallel.create\_workers’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/parallel-2.1.0/lib/parallel.rb:618 ‘Array#each’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/parallel-2.1.0/lib/parallel.rb:618 ‘Enumerable#each\_with\_index’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/parallel-2.1.0/lib/parallel.rb:618 ‘Parallel.create\_workers’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/parallel-2.1.0/lib/parallel.rb:557 ‘Parallel.work\_in\_processes’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/parallel-2.1.0/lib/parallel.rb:304 ‘Parallel.map’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/parallel-2.1.0/lib/parallel.rb:248 ‘Parallel.each’  
> /var/www/discourse/lib/plugin/js\_manager.rb:56 ‘Plugin::JsManager#compile!’  
> /var/www/discourse/lib/tasks/assets.rake:27 'block in ’  
> 任务：TOP =\> assets:precompile  
> （通过运行任务并添加 --trace 参数可查看完整堆栈跟踪）  
> /var/www/discourse/script/assemble\_ember\_build.rb:167 ‘Kernel#system’: 命令执行失败，退出代码为 1: bin/rake (RuntimeError)  
> 来自 /var/www/discourse/script/assemble\_ember\_build.rb:167 ‘’  
> Docker Manager: 升级失败  
> #\<RuntimeError: RuntimeError\>  
> /var/www/discourse/plugins/docker\_manager/lib/docker\_manager/upgrader.rb:205 ‘DockerManager::Upgrader#run’  
> /var/www/discourse/plugins/docker\_manager/lib/docker\_manager/upgrader.rb:105 ‘DockerManager::Upgrader#upgrade’  
> /var/www/discourse/plugins/docker\_manager/scripts/docker\_manager\_upgrade.rb:19 'block in ’  
> /var/www/discourse/plugins/docker\_manager/scripts/docker\_manager\_upgrade.rb:6 ‘Kernel#fork’  
> /var/www/discourse/plugins/docker\_manager/scripts/docker\_manager\_upgrade.rb:6 ‘’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/railties-8.0.5/lib/rails/commands/runner/runner\_command.rb:44 ‘Kernel.load’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/railties-8.0.5/lib/rails/commands/runner/runner\_command.rb:44 ‘block in Rails::Command::RunnerCommand#perform’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/activesupport-8.0.5/lib/active\_support/execution\_wrapper.rb:91 ‘ActiveSupport::ExecutionWrapper.wrap’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/railties-8.0.5/lib/rails/commands/runner/runner\_command.rb:70 ‘Rails::Command::RunnerCommand#conditional\_executor’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/railties-8.0.5/lib/rails/commands/runner/runner\_command.rb:43 ‘Rails::Command::RunnerCommand#perform’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/thor-1.5.0/lib/thor/command.rb:28 ‘Thor::Command#run’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/thor-1.5.0/lib/thor/invocation.rb:127 ‘Thor::Invocation#invoke\_command’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/railties-8.0.5/lib/rails/command/base.rb:178 ‘Rails::Command::Base#invoke\_command’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/thor-1.5.0/lib/thor.rb:538 ‘Thor.dispatch’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/railties-8.0.5/lib/rails/command/base.rb:73 ‘Rails::Command::Base.perform’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/railties-8.0.5/lib/rails/command.rb:65 ‘block in Rails::Command.invoke’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/railties-8.0.5/lib/rails/command.rb:143 ‘Rails::Command.with\_argv’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/railties-8.0.5/lib/rails/command.rb:63 ‘Rails::Command.invoke’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/railties-8.0.5/lib/rails/commands.rb:18 ‘’  
> /usr/local/lib/ruby/3.4.0/bundled\_gems.rb:82 ‘Kernel.require’  
> /usr/local/lib/ruby/3.4.0/bundled\_gems.rb:82 ‘block (2 levels) in Kernel#replace\_require’  
> /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/bootsnap-1.24.3/lib/bootsnap/load\_path\_cache/core\_ext/kernel\_require.rb:33 ‘Kernel#require’  
> bin/rails:18 ‘’  
> 正在启动之前停止的 1 个 Pitchfork 工作进程

如果社区中仍有人遇到更新问题，请在此评论区留言，我会尽力提供帮助。

感谢大家 \<3

---

<div class="post-metadata">

### Author: ![Lilly](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lilly/32/575047_2.png) [@Lilly](https://meta.discourse.org/u/Lilly)
#### Post date: [2026年五月17日 18:48 UTC](https://meta.discourse.org/t/crash-after-attempting-to-update/403196/2 "2026-05-17T18:48:37Z")

</div>

这就是为什么我从不通过管理 UI 更新 🤷🏻‍♀️

> [@TroLLoBlogger](#):
>
> 在服务器上打开终端，然后运行以下命令：
> 
> > cd /var/discourse
> 
> > ./launcher rebuild app

这是更新自托管标准安装的标准方式。

---

<div class="post-metadata">

### Author: ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)
#### Post date: [2026年五月17日 20:38 UTC](https://meta.discourse.org/t/crash-after-attempting-to-update/403196/3 "2026-05-17T20:38:10Z")

</div>

看起来是某个特定插件无法在 2 分钟的时间限制内完成构建。

> [@TroLLoBlogger](#):
>
> PLUGIN discourse-doc-categories] 脚本终止：超时，耗时 120 秒

@TroLLoBlogger，能否分享一下你的服务器配置？

---

<div class="post-metadata">

### Author: ![TroLLoBlogger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/trolloblogger/32/553637_2.png) [@TroLLoBlogger](https://meta.discourse.org/u/TroLLoBlogger)
#### Post date: [2026年五月17日 20:51 UTC](https://meta.discourse.org/t/crash-after-attempting-to-update/403196/4 "2026-05-17T20:51:43Z")

</div>

![image](https://global.discourse-cdn.com/meta/original/4X/4/0/d/40d9b6231e860673ab1b3783dd46fa4c13d66f7c.png)

如果您指的是其他内容，请告诉我 😃

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [2026年五月17日 20:56 UTC](https://meta.discourse.org/t/crash-after-attempting-to-update/403196/5 "2026-05-17T20:56:54Z")

</div>

出于好奇，请问您配置了交换空间吗？

那个单 vCPU 可能会成为您的瓶颈。

---

<div class="post-metadata">

### Author: ![TroLLoBlogger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/trolloblogger/32/553637_2.png) [@TroLLoBlogger](https://meta.discourse.org/u/TroLLoBlogger)
#### Post date: [2026年五月17日 21:09 UTC](https://meta.discourse.org/t/crash-after-attempting-to-update/403196/6 "2026-05-17T21:09:04Z")

</div>

是的，这是可行的。但两天前更新时完全没有问题。我也会创建一个 2GB 的交换空间，我们拭目以待：slight\_smile:

```plaintext
sudo fallocate -l 2G /swapfile        
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

```

---

<div class="post-metadata">

### Author: ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)
#### Post date: [2026年五月17日 21:27 UTC](https://meta.discourse.org/t/crash-after-attempting-to-update/403196/7 "2026-05-17T21:27:01Z")

</div>

嗯，如今单 vCPU 去处理前端资源构建这种复杂度的网页更新，可能有点勉强。

你觉得呢，@david？如果是预构建的资源，运行应该没问题，但我们可能需要检测并在那种配置下禁用网页更新功能……

---

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [2026年五月17日 21:30 UTC](https://meta.discourse.org/t/crash-after-attempting-to-update/403196/8 "2026-05-17T21:30:21Z")

</div>

即使是通过基于 Web 的更新，预构建的资源也应被拉取（它们与 Docker 镜像分开分发）

doc-categories 并非核心插件，因此我们不为其分发资源。不过……它是一个非常简单的插件。120 秒对于它来说太长了 🤔

---

<div class="post-metadata">

### Author: ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)
#### Post date: [2026年五月17日 22:48 UTC](https://meta.discourse.org/t/crash-after-attempting-to-update/403196/9 "2026-05-17T22:48:08Z")

</div>

我知道，我的意思是，对于

> 非核心插件 + 单 vCPU 安装

这种情况，可能需要提示用户执行重建操作。

---

<div class="post-metadata">

### Author: ![NateDhaliwal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/natedhaliwal/32/313494_2.png) [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)
#### Post date: [2026年五月17日 23:01 UTC](https://meta.discourse.org/t/crash-after-attempting-to-update/403196/10 "2026-05-17T23:01:03Z")

</div>

我有一台 1 核 CPU、1GB 内存的服务器。尝试了至少 10 次，只有一次成功运行了 Discourse（但随后不得不重建，结果陷入了无尽的失败循环）。我设置了 2GB 交换空间，后来增加到 5GB，但都无济于事 🤷 。没有安装任何非核心插件，只是……一直失败。

---

<div class="post-metadata">

### Author: ![TroLLoBlogger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/trolloblogger/32/553637_2.png) [@TroLLoBlogger](https://meta.discourse.org/u/TroLLoBlogger)
#### Post date: [2026年五月17日 23:04 UTC](https://meta.discourse.org/t/crash-after-attempting-to-update/403196/11 "2026-05-17T23:04:48Z")

</div>

1vCPU 和 1GB 内存——如果我没记错的话，这个服务器太弱了，尤其是在内存方面。我的也是一颗 CPU，但有 4GB 内存。不过，如果有外部插件的话，这显然还是有点低。我会再考虑一下。目前，SWAP 对我来说应该够用；如果不行，我就先关闭外部插件，直到我迁移到更大的服务器。

---

<div class="post-metadata">

### Author: ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)
#### Post date: [2026年五月18日 03:26 UTC](https://meta.discourse.org/t/crash-after-attempting-to-update/403196/12 "2026-05-18T03:26:44Z")

</div>

没错，让那可怜的 1 个 vCPU 同时运行 nginx、Ruby、PostgreSQL、Redis 以及用于重建的 Node.js，可能确实有点勉为其难了。

---

<div class="post-metadata">

### Author: ![Lilly](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lilly/32/575047_2.png) [@Lilly](https://meta.discourse.org/u/Lilly)
#### Post date: [2026年五月19日 02:40 UTC](https://meta.discourse.org/t/crash-after-attempting-to-update/403196/13 "2026-05-19T02:40:05Z")

</div>

顺便一提，我的一台实例配置为 2 核 CPU、4 GB 内存和 40 GB 磁盘，并添加了 `discourse-doc-categories` 插件来测试构建（此外我还在核心插件之上运行了两个非官方插件）：

 ![Screenshot 2026-05-17 at 5.14.27 PM](https://global.discourse-cdn.com/meta/original/4X/2/c/7/2c774f2afc32266bbd5d2e52aa0e27ac309e936f.png)

```plaintext
               total used free shared buff/cache available
Mem: 3.7Gi 1.6Gi 98Mi 69Mi 2.3Gi 2.2Gi
Swap: 2.0Gi 14Mi 2.0Gi

```

总之，我刚刚在 iPhone 上通过管理界面顺手运行了最新的（关键）更新，这次过程快速且顺利。🙂

 ![IMG5297](https://global.discourse-cdn.com/meta/original/4X/0/8/1/081620e9bf882358c9b8078f034800cb1ed6e1ed.jpeg)

---

<div class="post-metadata">

### Author: ![sniper756](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sniper756/32/545002_2.png) [@sniper756](https://meta.discourse.org/u/sniper756)
#### Post date: [2026年五月19日 06:14 UTC](https://meta.discourse.org/t/crash-after-attempting-to-update/403196/14 "2026-05-19T06:14:24Z")

</div>

我在一次通过管理面板更新后，丢失大量附件。然后，再也不通过管理面板升级更新了，都是用rebuild

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [2026年五月19日 07:10 UTC](https://meta.discourse.org/t/crash-after-attempting-to-update/403196/15 "2026-05-19T07:10:02Z")

</div>

两者执行的功能非常相似，都不会更改网站内容或上传文件夹。这确实令人惊讶。

主要区别在于服务器的负载。
