后台工作进程“逻辑复制启动器”(PID 51)已退出,退出代码为 1

在多站点配置中重建数据容器时,出现 background worker "logical replication launcher" (PID 51) exited with exit code 1 错误。更多日志如下:

218:C 11 Sep 2022 13:22:51.288 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
218:C 11 Sep 2022 13:22:51.289 # Redis version=6.2.6, bits=64, commit=00000000, modified=0, pid=218, just started
218:C 11 Sep 2022 13:22:51.289 # Configuration loaded
218:M 11 Sep 2022 13:22:51.292 * monotonic clock: POSIX clock_gettime
218:M 11 Sep 2022 13:22:51.293 * Running mode=standalone, port=6379.
218:M 11 Sep 2022 13:22:51.293 # Server initialized
218:M 11 Sep 2022 13:22:51.294 * Loading RDB produced by version 6.2.6
218:M 11 Sep 2022 13:22:51.294 * RDB age 53 seconds
218:M 11 Sep 2022 13:22:51.294 * RDB memory usage when created 32.70 Mb
218:M 11 Sep 2022 13:22:51.429 # Done loading RDB, keys loaded: 7811, keys expired: 0.
218:M 11 Sep 2022 13:22:51.429 * DB loaded from disk: 0.135 seconds
218:M 11 Sep 2022 13:22:51.429 * Ready to accept connections
I, [2022-09-11T13:23:01.284321 #1]  INFO -- :
I, [2022-09-11T13:23:01.284632 #1]  INFO -- : Terminating async processes
I, [2022-09-11T13:23:01.284702 #1]  INFO -- : Sending INT to HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 42
I, [2022-09-11T13:23:01.284791 #1]  INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 218
218:signal-handler (1662902581) Received SIGTERM scheduling shutdown...
2022-09-11 13:23:01.287 UTC [42] LOG:  received fast shutdown request
2022-09-11 13:23:01.306 UTC [42] LOG:  aborting any active transactions
2022-09-11 13:23:01.318 UTC [42] LOG:  background worker "logical replication launcher" (PID 51) exited with exit code 1
218:M 11 Sep 2022 13:23:01.345 # User requested shutdown...
218:M 11 Sep 2022 13:23:01.345 * Saving the final RDB snapshot before exiting.
2022-09-11 13:23:01.356 UTC [46] LOG:  shutting down
218:M 11 Sep 2022 13:23:02.113 * DB saved on disk
218:M 11 Sep 2022 13:23:02.114 # Redis is now ready to exit, bye bye...
2022-09-11 13:23:02.169 UTC [42] LOG:  database system is shut down
sha256:30b91243b63ec58aa8555df5d1dfac509abe121e5c8d7081dbab2f2278d7d837
11e8bce45c8d0d7020de971c08d49d26287cc513967230530c8ba925a3c058bb
Removing old container

但是您的构建似乎已成功完成,没有任何错误。您在启动数据容器时遇到任何错误吗?

不是与数据容器有关,而是在重建时与 Web 容器有关

/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Tasks: TOP => multisite:migrate => db:load_config => environment
(通过运行带 --trace 的任务查看完整跟踪)
I, [2022-09-11T13:30:49.381804 #1]  INFO -- : gem install iso8601 -v 0.13.0 -i /var/www/discourse/plugins/discourse-automation/gems/2.7.6 --no-document --ignore-dependencies --no-user-install
Successfully installed iso8601-0.13.0
1 gem installed
gem install rrule -v 0.4.4 -i /var/www/discourse/plugins/discourse-automation/gems/2.7.6 --no-document --ignore-dependencies --no-user-install
Successfully installed rrule-0.4.4
1 gem installed



FAILED
--------------------
Pups::ExecError: cd /var/www/discourse &amp;&amp; sudo -E -u discourse bundle exec rake multisite:migrate failed with return #&lt;Process::Status: pid 1095 exit 1&gt;
Location of failure: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec failed with the params "cd /var/www/discourse &amp;&amp; sudo -E -u discourse bundle exec rake multisite:migrate"
bootstrap failed with exit code 1

您是否正在使用任何第三方插件?

使用了相当多的官方 discourse 插件。但禁用除 Docker Manager 之外的所有插件后,错误仍然存在。

在我看来,您指出的错误就像是数据容器的正常消息

我刚刚在沙盒中重建了数据和 Web,它们都成功完成了。您能否分享您已编辑的 web_only.yml 文件?

你能注释掉这一行并尝试重建吗?我认为这不再需要了。

EMBER_CLI_PROD_ASSETS: 1 被注释掉后仍然是这样。Web 容器重建仍然抛出以下错误:

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && sudo -E -u discourse bundle exec rake multisite:migrate failed with return #<Process::Status: pid 983 exit 1>

您需要向上滚动到打印有关迁移问题的消息处。

下面还有几行,错误与在第 2 行第 1 列解析块映射时找不到预期的键有关,不确定这是什么意思。

Using cose 1.2.1
0:  cose (1.2.1) from /var/www/discourse/vendor/bundle/ruby/2.7.0/specifications/cose-1.2.1.gemspec
Bundle complete! 126 Gemfile dependencies, 183 gems now installed.
Gems in the groups 'test' and 'development' were not installed.
Bundled gems are installed into ./vendor/bundle

I, [2022-09-11T14:12:48.956298 #1]  INFO -- : > cd /var/www/discourse & sudo -E -u discourse bundle exec rake multisite:migrate
rake aborted!
Psych::SyntaxError: (<unknown>): did not find expected key while parsing a block mapping at line 2 column 1
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rails_multisite-4.0.1/lib/rails_multisite/connection_management.rb:181:in `load_config!'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rails_multisite-4.0.1/lib/rails_multisite/connection_management.rb:177:in `initialize'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rails_multisite-4.0.1/lib/rails_multisite/connection_management.rb:38:in `new'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rails_multisite-4.0.1/lib/rails_multisite/connection_management.rb:38:in `config_filename='
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rails_multisite-4.0.1/lib/rails_multisite/railtie.rb:19:in `block in <class:Railtie>'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-7.0.3.1/lib/rails/initializable.rb:32:in `instance_exec'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-7.0.3.1/lib/rails/initializable.rb:32:in `run'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-7.0.3.1/lib/rails/initializable.rb:61:in `block in run_initializers'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-7.0.3.1/lib/rails/initializable.rb:60:in `run_initializers'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-7.0.3.1/lib/rails/application.rb:372:in `initialize!'
/var/www/discourse/config/environment.rb:7:in `<main>'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.13.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.13.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/zeitwerk-2.6.0/lib/zeitwerk/kernel.rb:35:in `require'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-7.0.3.1/lib/rails/application.rb:348:in `require_environment!'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-7.0.3.1/lib/rails/application.rb:511:in `block in run_tasks_blocks'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.6/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Tasks: TOP => multisite:migrate => db:load_config => environment
(See full trace by running task with --trace)
I, [2022-09-11T14:12:53.236265 #1]  INFO -- :

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse & sudo -E -u discourse bundle exec rake multisite:migrate failed with return #<Process::Status: pid 983 exit 1>
Location of failure: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec failed with the params "cd /var/www/discourse & sudo -E -u discourse bundle exec rake multisite:migrate"
bootstrap failed with exit code 1

这意味着您的 app.yml 包含格式错误。看起来它来自 multisite 部分。

1 个赞

我看到的唯一一个带有 sych::SyntaxError 的插件是 discourse-calendar。你能尝试移除它吗?如果这样能解决你的问题,那么就意味着该插件存在 bug。

没有使用日历插件。

已通过 YML 验证器检查,没有错误。

下面是更新后的错误输出

INFO -- : Multisite migrator 正在使用 1 个线程运行

正在迁移 default
正在迁移 site2
正在填充 default
正在填充 site2

失败
--------------------
Pups::ExecError: cd /var/www/discourse &amp;&amp; sudo -E -u discourse bundle exec rake multisite:migrate failed with return #&lt;Process::Status: pid 983 exit 1&gt;
失败位置:/usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec failed with the params "cd /var/www/discourse &amp;&amp; sudo -E -u discourse bundle exec rake multisite:migrate"
bootstrap failed with exit code 1
**引导失败** 请向上滚动并查找更早的错误消息,可能不止一个。
./discourse-doctor 可能会帮助诊断问题。

您可以使用 ./discourse-doctor 导出完整的日志吗?

在构建过程中,会有一行显示“1 个迁移失败”,下方会显示哪个站点失败的信息。您需要找出该站点的错误,以便实际发生构建。

移至一个单独的主题,作为已确认的错误 Multisite build error: #<MiniRacer::RuntimeError: Error: Parser rule not found: fragments_join>