Yarn 错误

重建时卡在这里已经有 6 分钟了

我只是想要一个快速重建而已 :frowning: 现在已经快 20 分钟了,如果我知道的话,我应该等到凌晨 3 点什么的。我结束了 ssh 会话,然后又重新构建了一次,我们拭目以待。

编辑:我必须运行 ./discourse-docter 或者别的什么,它就回来了,我想更新我的 app.yml,我甚至不知道它是否更新了。

请参阅 Error during the update ESOCKETTIMEDOUT registry.yarnpkg.com

1 个赞

好的,我稍后会在凌晨3点左右尝试。

我真的很困惑,正如您在主题中提到的,我的第 159 行不同……

但我搜索了“yarn”,发现了这个

正在确保启动器是最新版本
正在获取 origin
启动器已是最新版本
正在停止旧容器
+ /usr/bin/docker stop -t 600 app
app
2.0.20240502-0021: 正在从 discourse/base 拉取
摘要: sha256:ca10543693caa0b52f7318105dea1d47a84991e7927330db1010e13e39777ba7
状态: 镜像已是最新版本 discourse/base:2.0.20240502-0021
docker.io/discourse/base:2.0.20240502-0021
/usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2024-05-09T03:58:42.050521 #1]  INFO -- : 从 stdin 读取
I, [2024-05-09T03:58:42.077104 #1]  INFO -- : File > /etc/service/postgres/run  chmod: +x  chown: 
I, [2024-05-09T03:58:42.095108 #1]  INFO -- : File > /etc/service/postgres/log/run  chmod: +x  chown: 
I, [2024-05-09T03:58:42.108229 #1]  INFO -- : File > /etc/runit/3.d/99-postgres  chmod: +x  chown: 
I, [2024-05-09T03:58:42.126445 #1]  INFO -- : File > /root/install_postgres  chmod: +x  chown: 
I, [2024-05-09T03:58:42.145105 #1]  INFO -- : File > /root/upgrade_postgres  chmod: +x  chown: 
I, [2024-05-09T03:58:42.145716 #1]  INFO -- : 替换 data_directory = '/var/lib/postgresql/13/main' 为 data_directory = '/shared/postgres_data' 在 /etc/postgresql/13/main/postgresql.conf
I, [2024-05-09T03:58:42.147110 #1]  INFO -- : 替换 (?-mix:#?listen_addresses *=.*) 为 listen_addresses = '*' 在 /etc/postgresql/13/main/postgresql.conf
I, [2024-05-09T03:58:42.150337 #1]  INFO -- : 替换 (?-mix:#?synchronous_commit *=.*) 为 synchronous_commit = $db_synchronous_commit 在 /etc/postgresql/13/main/postgresql.conf
I, [2024-05-09T03:58:42.180094 #1]  INFO -- : 替换 (?-mix:#?shared_buffers *=.*) 为 shared_buffers = $db_shared_buffers 在 /etc/postgresql/13/main/postgresql.conf
I, [2024-05-09T03:58:42.181568 #1]  INFO -- : 替换 (?-mix:#?work_mem *=.*) 为 work_mem = $db_work_mem 在 /etc/postgresql/13/main/postgresql.conf
I, [2024-05-09T03:58:42.182124 #1]  INFO -- : 替换 (?-mix:#?default_text_search_config *=.*) 为 default_text_search_config = '$db_default_text_search_config' 在 /etc/postgresql/13/main/postgresql.conf
I, [2024-05-09T03:58:42.183465 #1]  INFO -- : 替换 (?-mix:#?checkpoint_segments *=.*) 为 checkpoint_segments = $db_checkpoint_segments 在 /etc/postgresql/13/main/postgresql.conf
I, [2024-05-09T03:58:42.184221 #1]  INFO -- : 替换 (?-mix:#?logging_collector *=.*) 为 logging_collector = $db_logging_collector 在 /etc/postgresql/13/main/postgresql.conf
I, [2024-05-09T03:58:42.198484 #1]  INFO -- : 替换 (?-mix:#?log_min_duration_statement *=.*) 为 log_min_duration_statement = $db_log_min_duration_statement 在 /etc/postgresql/13/main/postgresql.conf
I, [2024-05-09T03:58:42.209671 #1]  INFO -- : 替换 (?-mix:^#local +replication +postgres +peer$) 为 local replication postgres  peer 在 /etc/postgresql/13/main/pg_hba.conf
I, [2024-05-09T03:58:42.213239 #1]  INFO -- : 替换 (?-mix:^host.*all.*all.*127.*$) 为 host all all 0.0.0.0/0 md5 在 /etc/postgresql/13/main/pg_hba.conf
I, [2024-05-09T03:58:42.218935 #1]  INFO -- : 替换 (?-mix:^host.*all.*all.*::1\/128.*$) 为 host all all ::/0 md5 在 /etc/postgresql/13/main/pg_hba.conf
I, [2024-05-09T03:58:42.221346 #1]  INFO -- : > [ -f /root/install_postgres ] && /root/install_postgres && rm -f /root/install_postgres
I, [2024-05-09T03:58:42.404926 #1]  INFO -- : 生成 locale(这可能需要一些时间)。。。
生成完成。
postgres 正在运行,停止容器


失败
--------------------
Pups::ExecError: [ -f /root/install_postgres ] && /root/install_postgres && rm -f /root/install_postgres 在返回 #<Process::Status: pid 16 exit 1> 时失败
失败位置: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
使用参数 {"tag"=>"db", "cmd"=>"[ -f /root/install_postgres ] && /root/install_postgres && rm -f /root/install_postgres"} 执行失败
引导失败,退出代码为 1
**引导失败** 请向上滚动并查找更早的错误消息,可能不止一条。
./discourse-doctor 可能会帮助诊断问题。
902db7e2e5295f896eb00f8379d8507209ddc1844e335ecb403f0cd900502448```

请帮帮我,我甚至无法重新构建,我只想让我的 app.yml 中的更改在网站上生效,它甚至没有使用它能使用的全部内存量,我对共享缓冲区做了一些更改,并且希望它上线。现在我甚至无法重新构建,为了让网站恢复联机,我使用了 discourse doctor 或只是重新启动了旧的应用程序。

是否还有其他 PostgreSQL 实例正在(在主主机上?)运行,并且在容器尝试构建时以某种方式与之通信?

不知道,也不这么认为,因为我是在一个新服务器上设置的。我应该以某种方式停止吗?
我搜索了如何检查 PostgreSQL 是否正在运行,并运行了此命令:“service postgresql status”,返回了 Unit postgresql.service could not be found。

我甚至重启了服务器,但仍然无效。
在卡住之前的完整控制台日志

第 262 行似乎被截断了

这就是卡住的地方,如果我让它停留太久,它就会像我在之前的消息中展示的那样显示。

Location of failure: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec failed with the params {"tag"=>"db", "cmd"=>"[ -f /root/install_postgres ] && /root/install_postgres && rm -f /root/install_postgres"}
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
902db7e2e5295f896eb00f8379d8507209ddc1844e335ecb403f0cd900502448

我想避免长时间停机,所以我停止并重新启动了应用程序,也感谢您的回复,我不知道该怎么办,我需要重建应用程序。

您有多少内存+交换空间?可能不足以进行构建。

绰绰有余,40GB 内存,400GB 存储空间

image
它甚至没有使用多少内存,我修改了 app.yml 以占用更多内存,并添加了 25 个 UNICORN_WORKERS(12 核 CPU)

这与新错误完全相同吗?新日志似乎在这些命令运行后崩溃。

是的,当我让它在不关闭ssh会话的情况下继续运行并重新启动时,出现了那个错误,它花了大约14分钟才显示失败,然后是引导错误,我不想长时间停机。

I, [2024-05-09T16:37:04.580910 #1]  INFO -- : 替换 (?-mix:^host.*all.*all.*::1\/128.*$) 为 host all all ::/0 md5 在 /etc/postgresql/13/main/pg_hba.conf
I, [2024-05-09T16:37:04.581418 #1]  INFO -- : > [ -f /root/install_postgres ] && /root/install_postgres && rm -f /root/install_postgres
I, [2024-05-09T16:37:09.576908 #1]  INFO -- : 生成 locales (这可能需要一些时间)...
生成完成。
 
I, [2024-05-09T16:37:09.577359 #1]  INFO -- : > 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
I, [2024-05-09T16:37:09.607719 #1]  INFO -- : 文件 > /usr/local/bin/create_db  chmod: +x  chown: 
I, [2024-05-09T16:37:09.635201 #1]  INFO -- : 文件 > /var/lib/postgresql/take-database-backup  chmod: +x  chown: postgres:postgres
I, [2024-05-09T16:37:09.648537 #1]  INFO -- : 文件 > /var/spool/cron/crontabs/postgres  chmod:   chown: 
I, [2024-05-09T16:37:09.648840 #1]  INFO -- : > sleep 5
2024-05-09 16:37:10.726 UTC [34] LOG:  正在启动 PostgreSQL 13.14 (Debian 13.14-1.pgdg110+2) 在 x86_64-pc-linux-gnu 上,由 gcc (Debian 10.2.1-6) 10.2.1 20210110 编译,64 位

日志文件中的第 31-41 行,看起来 PostgreSQL 已经启动了。

引导错误应该有不同的行在这里:

因为这些行似乎已成功执行。

我不知道说实话,我只是执行了重建命令,但在昨天失败后,我执行了 discourse doctor 命令让站点恢复联机。它仍然无法重建,每次都在同一行失败 I, [2024-05-09T16:37:44.902627 #1] INFO -- : \u003e cd /var/www/discourse \u0026\u0026 su discourse -c 'yarn install --frozen-lockfile \u0026\u0026 yarn cache clean'\nwarning Resolution field \"unset-value@2.0.1\" is incompatible with requested version \"unset-value@^1.0.0\"

1 个赞

通过将此添加到 Web 模板中,我解决了这个问题。我一开始遵循了第一个评论中的教程,但我是新手,最终自己解决了。

- exec:
      cd: $home
      cmd:
        - "su discourse -c 'yarn config set network-timeout 600000 -g'"
  - exec:
      cd: $home
      hook: yarn
      cmd:
        - |
          if [ "$version" != "tests-passed" ]; then
            rm -rf app/assets/javascripts/node_modules
          fi
        - su discourse -c 'yarn install --frozen-lockfile && yarn cache clean'

供其他遇到此问题的人参考。

另外,如何让我的 Instant 使用更多内存?即使进行了更改,现在也只使用了 4GB,这可以吗?它是否仍在被“使用”?

2 个赞

我也遇到了同样的问题(我也是新手),所以现在就试试你的修复方法。感谢分享。

嘿,抱歉给您添麻烦了,但我找不到任何 yarn 来运行它。它应该在哪个目录里?