重建问题:[无法在使用自定义端点的同时设置dual-stack。]

你好 :wave:

由于以下问题,无法重建。

I, [2024-11-07T08:00:56.758061 #1]  INFO -- : cd /var/www/discourse & sudo -E -u discourse bundle exec rake s3:upload_assets
rake aborted!
ArgumentError: Cannot set dual-stack in combination with a custom endpoint. (ArgumentError)

          raise ArgumentError, "Cannot set dual-stack in combination with a custom endpoint."
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FAILED

--------------------

Pups::ExecError: cd /var/www/discourse & sudo -E -u discourse bundle exec rake s3:upload_assets failed with return #<Process::Status: pid 3349 exit 1>

Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'

exec failed with the params {"cd"=>"$home", "cmd"=>["sudo -E -u discourse bundle exec rake s3:upload_assets", "sudo -E -u discourse bundle exec rake s3:expire_missing_assets"]}

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.

567dc9e1f9a4e662de6024b8504915d8b6ef1ee2d9b4303af75323ba478679e4

可能相关的提交:FIX: Use dualstack S3 endpoint for direct uploads (#29611) · discourse/discourse@0568d36 · GitHub

我使用 S3 对象存储 上传到 DO Spaces。问题可能出在这里。

谢谢 :slight_smile:

1 个赞

我注释掉了这些行,这使得重新构建能够成功运行,但网站卡在启动画面,我认为是因为无法加载资源。:thinking: 安全模式也一样…

  after_assets_precompile:
    - exec:
        cd: $home
        cmd:
          - sudo -E -u discourse bundle exec rake s3:upload_assets
          - sudo -E -u discourse bundle exec rake s3:expire_missing_assets

有什么想法吗?我知道现在时机不好… :confused:

1 个赞

嘿 Don,我们会看看的。感谢您的报告。

1 个赞

谢谢 Natalie :hugs:

对于快速修复,我已经用 cc01555fce59e116b76c912b4c5195e111a652b2 版本重新构建了,这个版本比这个版本 https://github.com/discourse/discourse/commit/0568d36133081e52f25f05585c1a568c3b828d79 落后一个提交。

2 个赞

我的使用 Digital Ocean Spaces S3 设置的重建开始因以下错误而失败:

, [2024-11-07T19:09:38.615466 #1]  INFO -- : cd /var/www/discourse & sudo -E -u discourse bundle exec rake s3:upload_assets
rake aborted!
ArgumentError: Cannot set dual-stack in combination with a custom endpoint. (ArgumentError)
          raise ArgumentError, "Cannot set dual-stack in combination with a custom endpoint."
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.143.0/lib/aws-sdk-s3/endpoint_provider.rb:34:in `resolve_endpoint'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.143.0/lib/aws-sdk-s3/plugins/endpoints.rb:37:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.191.3/lib/seahorse/client/plugins/endpoint.rb:47:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.191.3/lib/aws-sdk-core/plugins/param_validator.rb:26:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.143.0/lib/aws-sdk-s3/plugins/sse_cpk.rb:24:in `call'

但是,省略将其设置为 whatever 会导致构建失败,如下所示:


I, [2024-11-07T19:15:31.060936 #1]  INFO -- : cd /var/www/discourse & sudo -E -u discourse bundle exec rake s3:upload_assets
ERROR: Ensure S3 is configured in config/discourse.conf or environment vars
I, [2024-11-07T19:15:36.056204 #1]  INFO -- :


我发现了这个:

还有这个:

也许 S3_REGION 应该在设置了 endpoint 时被清除?

编辑:哎呀。我以为我搜索过了。抱歉 Falco。

1 个赞

奇怪的是,这给了我这个错误:

Gem::LoadError: can't activate webrick-1.9.0, already activated webrick-1.8.2 (Gem::LoadError)

这正是我在使用一个实例运行导入时看到的,我通过升级“修复”了它。

我猜我现在不能升级这个服务器了。:frowning:

我不确定,但也许值得一试。我之前成功地进行过一次重建,然后再进行此操作。

然后就在这之后尝试使用选择的提交进行重建。第二次重建成功运行。

1 个赞

@martin 通常我们在这里的做法是提供一个 GlobalSetting 来禁用该行为,以便运行不兼容的 S3 克隆的用户可以选择启用它以使其正常工作。

在我看来,当前行为应保持为默认值,但提供用于提高兼容性的开关。

请参阅 DISCOURSE_S3_HTTP_CONTINUE_TIMEOUTDISCOURSE_S3_INSTALL_CORS_RULE 等之前的示例。

3 个赞

啊抱歉,各位,这是我的错。我总是记不住这些 S3 克隆。昨天我不得不修复 Minio 的这个自定义端点问题。我认为这里的修复方法是,如果设置了 DISCOURSE_S3_ENDPOINT,就永远不要使用 dualstack,因为它们不兼容,而且这里的每个人似乎都在使用它。

3 个赞

我已经合并了一个修复程序:

4 个赞

感谢您快速修复!我又能正常工作了。 :tada:

感谢 Rafael 清晰的解释!

那是因为有很多事情需要记住!而且我认为,规范测试将需要那些烦人的 stub_request,我知道我讨厌写它们。

供参考,这听起来对我来说是正确的。而且你可能可以为此编写一些不需要 stub_request 存根的测试。

1 个赞

10 篇帖子已拆分为新主题:无法备份或导航到备份

我不认为这应该被标记为#fixed。

这次更改很可能导致多个实例上的备份中断(而其他人可能还不知道他们的实例尚未备份)。

这对我来说表明,规范不够广泛,无法涵盖所有实际用例,并且不应该通过的更改却通过了?

4 个赞

在我看来,它似乎只修复了启用了 use_s3 的网站,而没有修复仅将 S3 用于备份的网站。

虽然可以重建,但 S3 备份已损坏。:crying_cat_face:

3 个赞

备份问题已在 Unable to backup or navigate to backups - #20 by martin 修复

3 个赞

此主题在上次回复后 3 天自动关闭。不再允许新回复。