从 3.0.3 更新到 3.0.4 时出现问题:错误 523

你好!

我在尝试使用 launcher 工具升级我的安装时遇到一个问题。

当构建容器尝试更改已上传图像的所有权时,我收到一个 523 错误……有什么想法吗?

这是日志:

$ sudo ./launcher rebuild app
检测到 x86_64 架构。
警告:containers/app.yml 文件是所有人可读的。您可以通过运行:chmod o-rwx containers/app.yml 来保护此文件
确保 launcher 是最新的
正在获取 origin
Launcher 是最新的
正在停止旧容器
+ /usr/bin/docker stop -t 600 app
app
2.0.20230502-0058:正在从 discourse/base 拉取
摘要:sha256:fa95da36c3d3a582d644b139ec678f5778d745697454bc86f598c689031b30aa
状态:镜像已是最新 discourse/base:2.0.20230502-0058
docker.io/discourse/base:2.0.20230502-0058
/usr/local/lib/ruby/gems/3.2.0/gems/pups-1.1.1/lib/pups.rb
/usr/local/bin/pups --stdin

.....

切换到新分支 'stable'
I, [2023-06-18T16:43:24.458070 #1]  INFO -- : 分支 'stable' 已设置为跟踪 'origin' 的远程分支 'stable'。

I, [2023-06-18T16:43:24.458386 #1]  INFO -- : 
I, [2023-06-18T16:43:24.469320 #1]  INFO -- : 
I, [2023-06-18T16:43:24.469386 #1]  INFO -- : 
I, [2023-06-18T16:43:24.472481 #1]  INFO -- : 
I, [2023-06-18T16:43:24.472660 #1]  INFO -- : 
I, [2023-06-18T16:43:24.476232 #1]  INFO -- : 
I, [2023-06-18T16:43:24.476303 #1]  INFO -- : 
I, [2023-06-18T16:43:24.479386 #1]  INFO -- : 
I, [2023-06-18T16:43:24.479449 #1]  INFO -- : 
I, [2023-06-18T16:43:24.482943 #1]  INFO -- : 
I, [2023-06-18T16:43:24.483012 #1]  INFO -- : 
I, [2023-06-18T16:43:24.486152 #1]  INFO -- : 
I, [2023-06-18T16:43:24.486220 #1]  INFO -- : 
I, [2023-06-18T16:43:24.489788 #1]  INFO -- : 
I, [2023-06-18T16:43:24.489954 #1]  INFO -- : 
I, [2023-06-18T16:43:24.495214 #1]  INFO -- : 
I, [2023-06-18T16:43:24.495285 #1]  INFO -- : 
I, [2023-06-18T16:43:24.500211 #1]  INFO -- : 
I, [2023-06-18T16:43:24.500283 #1]  INFO -- : 
I, [2023-06-18T16:43:24.504652 #1]  INFO -- : 
I, [2023-06-18T16:43:24.504738 #1]  INFO -- : 
I, [2023-06-18T16:43:24.512836 #1]  INFO -- : 
I, [2023-06-18T16:43:24.512942 #1]  INFO -- : 
I, [2023-06-18T16:43:24.518383 #1]  INFO -- : 
I, [2023-06-18T16:43:24.518453 #1]  INFO -- : 
I, [2023-06-18T16:43:24.523090 #1]  INFO -- : 
I, [2023-06-18T16:43:24.523195 #1]  INFO -- : 
chown: /shared/uploads/default/optimized/1X:未知错误 523
chown: /shared/uploads/default/original/1X:未知错误 523
I, [2023-06-18T16:43:41.385629 #1]  INFO -- : 


失败
--------------------
Pups::ExecError: cd /var/www/discourse && chown -R discourse:www-data /shared/log/rails /shared/uploads /shared/backups /shared/tmp 在返回 #<Process::Status: pid 135 exit 1> 时失败
失败位置:/usr/local/lib/ruby/gems/3.2.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec 失败,参数为 {"cd"=>"$home", "hook"=>"code", "cmd"=>["sudo -H -E -u discourse git reset --hard", "sudo -H -E -u discourse git clean -f", "sudo -H -E -u discourse bash -c '\n  set -o errexit\n  if [ $(git rev-parse --is-shallow-repository) == \"true\" ]; then\n      git remote set-branches --add origin main\n      git remote set-branches origin $version\n      git fetch --depth 1 origin $version\n  else\n      git fetch --tags --prune-tags --prune --force origin\n  fi\n'", "sudo -H -E -u discourse bash -c '\n  set -o errexit\n  if [[ $(git symbolic-ref --short HEAD) == $version ]] ; then\n      git pull\n  else\n      git -c advice.detachedHead=false checkout $version\n  fi\n'", "sudo -H -E -u discourse git config user.discourse-version $version", "mkdir -p tmp", "chown discourse:www-data tmp", "mkdir -p tmp/pids", "mkdir -p tmp/sockets", "touch tmp/.gitkeep", "mkdir -p                    /shared/log/rails", "bash -c \"touch -a           /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log\"", "bash -c \"ln    -s           /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log $home/log\"", "bash -c \"mkdir -p           /shared/{uploads,backups}\"", "bash -c \"ln    -s           /shared/{uploads,backups} $home/public\"", "bash -c \"mkdir -p           /shared/tmp/{backups,restores}\"", "bash -c \"ln    -s           /shared/tmp/{backups,restores} $home/tmp\"", "chown -R discourse:www-data /shared/log/rails /shared/uploads /shared/backups /shared/tmp", "[ ! -d public/plugins ] || find public/plugins/ -maxdepth 1 -xtype l -delete"]}
引导失败,退出代码为 1
** 引导失败 ** 请向上滚动并查找更早的错误消息,可能不止一个。
./discourse-doctor 可能有助于诊断问题。
2 个赞

我找不到关于此错误的任何有用信息。您的操作系统发行版和版本是什么?上传使用的是哪种类型的存储?

我希望您已经知道,使用“stable”跟踪是一种不寻常的策略——几乎所有人都运行“tests-passed”跟踪。请参阅
为什么 Discourse 默认始终安装“beta”版本?

您是否正在使用 S3?如果是,您的存储桶名称配置是否正确?

但它不应该会 失败,所以 IMO 这无关紧要?

如果很少有安装使用稳定版,它可能被视为失败得更少。另外,我想确保 @gmoirod 知道这种情况——猜测一些运行稳定版的人并不知道它是什么。

我明白了。但如果他现在安装失败,我估计跳到 3.1.0beta5 会让情况变得更糟。所以我们先集中处理这个问题。

1 个赞

我在 Debian 11 服务器上通过 docker 容器运行 Discourse。
我的上传文件位于共享的 NFS 挂载点上。一直都是这样,我以前从未遇到过这个问题。

是的,我看到过关于这个的几个说法……我总有一天要这么做……
你知道,我有点像个 Debian 的人。生产环境要用“stable”。

好了。现在该挂载点在容器内是否可访问?

我实际运行的 Discourse 3.0.3 容器:

            {
                "Type": "bind",
                "Source": "/nfsdata/discourse-data-shared/uploads",
                "Destination": "/shared/uploads",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            },

在容器内部,所有权和权限看起来都不错

$ sudo docker exec app sh -c "ls -al /shared/uploads /shared/uploads/default/optimized/1X /shared/uploads/default/original/1X"
/shared/uploads:
total 4
drwxr-xr-x  2 discourse www-data    0 Jun 20 20:07 .
drwxr-xr-x 10 root      root     4096 Mar  8 16:29 ..
drwxr-xr-x  2 discourse www-data    0 Jun  8  2022 default
drwxr-xr-x  2 discourse www-data    0 Mar  8 17:34 tombstone

/shared/uploads/default/optimized/1X:
total 17094
drwxr-xr-x 2 discourse www-data      0 Mar 22 11:30 .
drwxr-xr-x 2 discourse www-data      0 Mar  8 16:18 ..
-rw-r--r-- 1 discourse www-data  54700 Mar  8 16:52 00964701d199ec0d6d3dd5269c842e1f0bb7e7a1_2_1035x456.png
-rw-r--r-- 1 discourse www-data    205 Mar  8 16:52 00964701d199ec0d6d3dd5269c842e1f0bb7e7a1_2_10x10.png
.....

/shared/uploads/default/original/1X:
total 17932
drwxr-xr-x 2 discourse www-data       0 Apr 23 11:42 .
drwxr-xr-x 2 discourse www-data       0 Jun  8  2022 ..
-rw-r--r-- 1 discourse www-data   35706 Nov 18  2022 00964701d199ec0d6d3dd5269c842e1f0bb7e7a1.png
-rwxr-xr-x 1 discourse www-data   17112 Jul  4  2022 00a82b03ffbcdf56e34f86adbec263e12573f49b.png

此外,我可以在运行的 Discourse 3.0.3 中上传新图片

精确:我没有激活 SELinux/AppArmor

希望这无关 :sob: #102728 - cvs: unknown error 523 - Debian Bug report logs

实际上,这不是 NFS 存储库的问题。这是 NFS 挂载的客户端目录的问题。

问题最终是 Linux 内核中的一个 NFS bug,所以你可能可以关闭这个 bug。

Google 搜索结果排在第一位并不意味着它是最好的结果。

日期:2001 年 6 月 28 日星期四 20:03:01 UTC

您是否能够从容器内部 chown,即手动运行失败的命令?

sudo docker exec app sh -c "chown -R discourse:discourse /shared/uploads/default/optimized/1X"

恐怕我可以(我已经更正了最初执行的命令)…

$ docker exec -it app bash
app:/$ cd /var/www/discourse
app:/var/www/discourse$ chown -R discourse:www-data /shared/uploads
app:/var/www/discourse$ echo $?
0

花了很长时间但没有错误。

在 3.0.3 中运行的 Docker 镜像与用于构建 3.0.4 镜像的 Docker 镜像之间是否存在任何差异?

Docker 镜像版本与 Discourse 版本无关。此外,这取决于您之前如何重建,因此很难说。

我的实际 3.0.3 镜像给我

# docker image inspect local_discourse/app | grep 'discourse/base'
            "Image": "discourse/base:2.0.20230409-0052",

而出错的那个使用了:

Status: Image is up to date for discourse/base:2.0.20230502-0058

我将检查差异 :mag:

该死!
我什么都没看到 : Comparing 3d317b7f58e8201912972afa3910b6c4b9ad8c75...main · discourse/discourse_docker · GitHub

好的,基础镜像肯定有问题。
我在启动器中强制使用了 discourse/base:2.0.20230409-0052,效果非常好。

# git diff launcher
diff --git a/launcher b/launcher
index 3e1a1c4..8a989b8 100755
--- a/launcher
+++ b/launcher
@@ -92,7 +92,7 @@ kernel_min_version='4.4.0'
 config_file=containers/"$config".yml
 cidbootstrap=cids/"$config"_bootstrap.cid
 local_discourse=local_discourse
-image="discourse/base:2.0.20230502-0058"
+image="discourse/base:2.0.20230409-0052"
 docker_path=`which docker.io 2> /dev/null || which docker`
 git_path=`which git`

有人能看出是什么改变导致了这个问题吗?

信不信由你,我刚刚用 discourse/base:2.0.20230502-0058 重新构建,它通过了…… :man_shrugging:

2 个赞

我一点也不怀疑电脑的鬼把戏 :upside_down_face:

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.