更新 = ☠

大家好
我一直跟进更新,看到有更新就做了,结果除了管理员界面,其他都没有UI了

SSH进去,确保所有东西都更新了,但没有帮助

尝试回滚,出现了这个

进入安全模式后,虽然启动了,但UI不完整

无法登录,提示我的用户名可用,但我的邮箱不存在

请帮我解决一下,谢谢


编辑,重启服务器后出现

不甘心,我去注册,想着现在应该可以备份了

还是不行


编辑,刷新另一个窗口后,我似乎可以注册了

然后

还是不行


SSH进去,情况还是和之前一样


编辑
image



DISCOURSE DOCTOR Sun Nov 12 01:54:06 UTC 2023
OS: Linux ip-10-0-159-37 6.2.0-1015-aws #15~22.04.1-Ubuntu SMP Fri Oct  6 21:37:24 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux


找到 containers/app.yml

==================== YML SETTINGS ====================
DISCOURSE_HOSTNAME=forum.full30.com
SMTP_ADDRESS=smtp.sendgrid.net
DEVELOPER_EMAILS=REDACTED 
SMTP_PASSWORD=REDACTED 
SMTP_PORT=587
SMTP_USER_NAME=apikey
LETSENCRYPT_ACCOUNT_EMAIL=REDACTED  LETSENCRYPT_ACCOUNT_EMAIL

==================== DOCKER INFO ====================
DOCKER VERSION: Docker version 24.0.7, build afdd53b

DOCKER PROCESSES (docker ps -a)

CONTAINER ID   IMAGE                 COMMAND        CREATED        STATUS                      PORTS     NAMES
0be0150fecde   local_discourse/app   “/sbin/boot”   5 months ago   Exited (5) 11 minutes ago             app

==================== SERIOUS PROBLEM!!!! ====================
app 未运行!
正在尝试重建
==================== REBUILD LOG ====================
检测到 x86_64 架构。
正在确保 launcher 是最新的
正在获取 origin
Launcher 是最新的
正在停止旧容器
+ /usr/bin/docker stop -t 600 app
app
2.0.20231023-1945: Pulling from discourse/base
Digest: sha256:2b0eb484d20888cc2daadb690dcfa73522105650c1420212e99345a36a424d77
Status: Image is up to date for discourse/base:2.0.20231023-1945
docker.io/discourse/base:2.0.20231023-1945
/usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2023-11-12T01:54:13.829288 #1]  INFO -- : Reading from stdin
I, [2023-11-12T01:54:13.834181 #1]  INFO -- : 
> locale-gen $LANG && update-locale
I, [2023-11-12T01:54:13.862453 #1]  INFO -- : Generating locales (this might take a while)...
Generation complete.

I, [2023-11-12T01:54:13.862638 #1]  INFO -- : 
> mkdir -p /shared/postgres_run
I, [2023-11-12T01:54:13.865023 #1]  INFO -- : 
I, [2023-11-12T01:54:13.865390 #1]  INFO -- : 
> chown postgres:postgres /shared/postgres_run
I, [2023-11-12T01:54:13.867489 #1]  INFO -- : 
I, [2023-11-12T01:54:13.867791 #1]  INFO -- : 
> chmod 775 /shared/postgres_run
I, [2023-11-12T01:54:13.869643 #1]  INFO -- : 
I, [2023-11-12T01:54:13.869925 #1]  INFO -- : 
> rm -fr /var/run/postgresql
I, [2023-11-12T01:54:13.871930 #1]  INFO -- : 
I, [2023-11-12T01:54:13.872203 #1]  INFO -- : 
> ln -s /shared/postgres_run /var/run/postgresql
I, [2023-11-12T01:54:13.874058 #1]  INFO -- : 
/tmp/discourse-debug.txt
2 个赞

这似乎很重要:

警告:无法创建服务器 TCP 侦听套接字 *:6379:bind:地址已在使用中

我认为 Redis 应该运行在端口 6379 上。

无法创建 Redis 服务器是否会导致迁移出现问题?

错误:关系“summary_sections”已存在

由于某种原因,创建 summary_sections 表的迁移被再次运行。您的日志中还有其他重复的表错误吗?

我猜另一个问题是,您是否有最近的备份文件?

6 个赞

哈哈,是的,我几乎可以猜到同样的结果,悲哀的答案是查看我的服务器,我看到 11 月 5 日是最新的,因为我无法登录管理员,所以我无法查看 Discourse 是否可能创建了更新的备份。

但是……这是今早的,

forum

如果我无法登录管理员仪表板进行备份,我真的不知道该怎么办?

感谢您的回复,我希望我能很快再次运行起来,即使是使用一周前的备份。

罗伯特

1 个赞

我对日志非常不熟悉。我做了五年,遇到的问题很少,而且很容易修复,所以没有理由去了解它,而且我也没有技术团队可以询问。您能指导我如何获取和发布日志吗?如果我上传,它会像Doctor文件一样被屏蔽吗?

我最近一次更新新网站时也遇到了一个问题,可能是不小心中断了安装,然后网站报告说它已更新,但同时又需要紧急更新,但由于它刚刚完成了最近一次更新而无法更新。

从控制台重建应用程序解决了这个问题,不必从备份恢复。

如果知道如何从备份重新启动网站,那就好了,也不知道如何做到这一点。

2 个赞

我再试一次,我执行了

cd /var/discourse
git pull
./launcher rebuild app

然后再次收到

错误/警告如下

image

Doctor 再次没有帮助,我保留了它的报告,但里面没有新内容。

1 个赞

正在进行另一次重建,出现了类似的错误:

137:M 12 Nov 2023 13:09:14.143 # 警告:无法创建服务器 TCP 监听套接字 *:6379:bind:地址已在使用中
137:M 12 Nov 2023 13:09:14.143 # 监听端口 6379 (TCP) 失败,中止。

但是它仍然在进行,记得之前见过这些,但安装仍然完成了。

您是否以 root 用户通过 ssh 登录到服务器控制台?

安装过程中有几次需要很长时间才能完成,看起来超过 10 分钟,起初以为它崩溃了,但等待足够长的时间后它就完成了。

大量关于不正确/未满足的对等依赖项的错误。

然后它在“后台保存已成功终止”这一行之后停止,这听起来像是一个结论,但显然不是,这就是它可能需要十分钟才能进入下一步的地方。

2 个赞

要查看日志详情,您可以执行以下操作:

以 root 用户身份登录或执行“sudo su
然后执行命令:

cd /var/discourse
./launcher enter app
tail -f log/production.log

运行最后一个命令后,您需要向 Discourse 发送 HTTP 请求。您的 shell 中将显示新的错误消息。然后您可以使用 Ctrl+C 停止 tail 命令执行,并查看或复制消息。

要退出容器 shell,您可以使用 exit 命令。

2 个赞

是的

Error response from daemon: Container 0be0150fecde6af5e98c0f12b97d24ccc1333fee2e96f02174ac63b79df8efbc is not running
tail: cannot open ‘log/production.log’ for reading: No such file or directory
tail: no files remaining

I tried the HTTP request as curl “https://forum.full30.com"

and got

curl: (3) URL using bad/illegal format or missing URL

so… may be I simply did not understand what you meant by http request :man_shrugging:

鉴于那是你最近的备份,而且我在这方面不是专家,我不确定我是否应该在这里提供建议。

就我所知,Warning: Could not create server TCP listening socket *:6379 的问题可能与你遇到的迁移错误无关。例如:

INFO -- cd /var/www/discourse and su discourse -c 'bundle exec rake db:migrate'

ERROR: database "discourse" already exists

Error: role "discourse" already exists

Error: relation "summary_sections" already exists

这些错误似乎表明你的数据库已损坏。bundle exec rake db:migrate 命令(在我上面粘贴的日志片段的 INFO 部分)应该会触发 Discourse 检查数据库的 schema_migrations 表,以查看之前运行了哪些迁移。这可以防止同一个迁移被运行多次。所以我的猜测是,要么你的数据库的 schema_migrations 表已损坏,要么重复的条目不知何故进入了 db/migrations 文件夹,或者 db/migrations 文件夹中的文件不知何故被重命名了。我不知道有什么可能触发这些情况中的任何一种。

我很想通过 ./launcher enter app 进入应用程序,并从那里手动运行迁移,看看是否会有任何不同。不过,先不要这样做。希望有更多了解 launcher 脚本的人能看到这个帖子,并纠正我写的任何错误之处。

3 个赞

好奇你的意见,或者任何人的意见

我们正在计划另一次服务器迁移,现在是好时机吗,因为这些问题似乎都集中在

PG::DuplicateTable: ERROR: relation "summary_sections" already exists

等等已存在项目上?

迁移会有帮助吗?

我怀疑那会解决问题。尝试创建一个新的安装并导入你最近的备份文件不会有坏处。

2 个赞

该站点似乎已将其视为新安装,请参见我的截图。

这仅仅是因为我使用了 safemode,一次更新就导致了如此严重的崩溃,而且更奇怪的是,只有我的 discourse 实例受到了影响。

我已经执行了 git pull 等操作,但没有改善,我觉得这和从头开始构建一样,如果我错了,请告诉我怎么做。

尝试了

./launcher start-cmd app

./launcher cleanup

删除了 18MB 的镜像,进行了新的拉取/重建/失败/医生检查,但仍然没有成功。

当我访问我的应用程序时,我的所有信息仍然存在,至少这一点是好的。

我95%确定重复表错误实际上可以安全地忽略。(我记得在我们的论坛上每次升级时都会看到它们)

1 个赞

我忽略了它们,但仍然无法重新上线。

你认为这些错误怎么样?

您能否发布一个重建的完整日志?

1 个赞

我昨天遇到了同样的问题。我以为是服务器问题,因为之前的更新也有过类似的行为,所以我决定暂时运行来解决它

/launcher rebuild app

下载了最新的备份并部署了一个新服务器。恢复备份非常容易,而且神秘的是一切都已更新。

1 个赞
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 645 exit 1>
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 {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
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.
adb2c505fd2f1289f44586496fea24ff31264f73c26eb524baf16602a189f
root@ip-10-0-159-37:/var/discourse#

具体是什么意思?

可以,我应该先删除什么?