更新后主题组件出现重大问题

我刚刚更新到了这个:Commits · discourse/discourse · GitHub 2f398db9b66f19220b5a7f56721a68f41dcdeeec

两个不同的主题组件现在完全破坏了我的网站。它们是来自 Air Theme 的“Modern Category + Group Boxes”和来自 Avatar Size and Shape 的“Avatar Size and Shape”。

它们导致网站无法使用(循环?)。在 Firefox 和 Chrome(桌面版)上都会出现这种情况。

我尝试过在没有插件的情况下以及在不同的主题中单独使用它们(即安全模式下没有插件,并在隔离的主题上),所以我认为这与我的实例无关。

控制台报告了类似以下的行:

未捕获的 TypeError: 无法读取 null 的属性(读取 ‘syscall’)

未捕获(在 Promise 中)TypeError: 无效值用作弱映射键

message-bus.js:118 MESSAGE BUS FAIL: callback /latest 导致异常 TypeError: 无法读取 null 的属性(读取 ‘syscall’)

作为临时解决方案,我已将我的用户强制切换到一个通用主题,直到问题解决。如果您能重现此错误,请告诉我。

4 个赞

抱歉,到目前为止我无法重现。

2 个赞

我的网站上也遇到了同样的问题。例如,当我注销时,页面会完全变白并显示相同的错误。一些用户还报告说他们无法登录,因为页面是空白的。这种情况似乎是随机发生的。

主要问题是,没有明确的错误消息来指示原因。我尝试通过检查我的主题组件来追踪它。我已经将其中大部分更新为 gjs,但有趣的部分是:当我停用然后重新激活某个特定组件时,网站会再次正常运行,没有错误。但我仍然不知道是什么导致了这个问题……似乎问题只发生在存在(自定义)主题组件的页面上。所以至少这给了我一个线索,表明问题一定来自其中一个组件。

1 个赞

这或许有助于追踪:

检查一下助手!

可以分享一下发生问题的页面/网站吗?@Don @piffy

1 个赞

我设置了一个简单的、仅包含头像组件的主题:Elite Fourum - E4 - efour

https://www.elitefourum.com/latest?safe_mode=no_plugins&preview_theme_id=39

我在 Firefox 和 Chrome(桌面版)的此链接上可以重现此问题。


现代分类 + 分组框:Elite Fourum - E4 - efour

https://www.elitefourum.com/?safe_mode=no_plugins&preview_theme_id=58

这个似乎更难重现。当我登录到我的管理员帐户时(Chrome 和 Firefox),它会引起问题,但在使用虚拟帐户尝试时则不会。这两个主题组件之间的错误似乎相似,所以也许修复一个会解决另一个。

希望这有帮助!

1 个赞

我能找到的最接近可解释的错误消息是:

client-error-handler.js:125 [THEME 39 ‘Test’] Error: Could not find module admin/components/color-input imported from (require)

customize-edit-category-general.js 来自 Air 主题:

在核心代码中:

这看起来是同一个问题:Forum navbar is repeating

1 个赞

这将修复 air 主题中的 color-input 错误。但这个问题并非新问题,所以我认为它不太可能是导致这些渲染错误的原因

2 个赞

@piffy 请尝试更新到最新的 tests-passed,以防 color-input 的修复有任何帮助。

假设重建后问题仍然存在,请尝试执行以下操作:

./launcher enter app
rails c
Discourse.clear_all_theme_cache!

如果您有时间,@don,您也请尝试一下。

如果这解决了问题,那么这表明我们在上周更新 Ember 版本时本应发生的缓存失效问题。

2 个赞

谢谢 David,这对我来说似乎很有用。

1 个赞

还确认更新没有帮助,但主题缓存重置奏效了。

2 个赞

好的,太好了,感谢您的确认!我们将尝试解决主题缓存系统中的此问题,以避免需要手动操作。

但与此同时,对于遇到这些问题的其他人:

Uncaught TypeError: Cannot read properties of null (reading ‘syscall’)
Uncaught (in promise) TypeError: Invalid value used as weak map key

请在控制台中执行以下步骤:

./launcher enter app
rails c
Discourse.clear_all_theme_cache!
4 个赞

@piffy @Don 你们俩都在运行单容器标准安装吗?

1 个赞

是的,我使用的是单容器标准安装。

1 个赞

我正在 DigitalOcean 上运行 Ubuntu 20.04.6 LTS(我看到它不再受官方支持),单个容器。

与标准安装相比的显著差异:

1 个赞

还有一个问题。刚出问题的时候,你是在运行UI更新还是CLI重建?

命令行界面

添加更多单词以克服 20 个字符的帖子限制

1 个赞

是的,我也是。我先进行了UI更新。

1 个赞

我无法重现该问题,但我确实发现了一个仅与基于 UI 的升级方式相关的问题。这应该可以解决它:

它还会强制重新编译,因此受此 bug 影响的网站将在下次更新后得到修复。

5 个赞