尝试打开已锁定主题的 diff 时出现 ArgumentError (Attributes per element limit exceeded)

ArgumentError(每个元素的属性数超出限制)- 点击“编辑”图标查看主题版本差异时出现。

开发者控制台

日志

消息(报告了 2 份副本)

ArgumentError(每个元素的属性数超出限制)
lib/discourse_diff.rb:171:in `tokenize_html_blocks'
lib/discourse_diff.rb:10:in `initialize'
app/serializers/post_revision_serializer.rb:117:in `new'
app/serializers/post_revision_serializer.rb:117:in `body_changes'
(eval):18:in `_fast_attributes'
app/controllers/application_controller.rb:520:in `render_json_dump'
app/controllers/posts_controller.rb:408:in `latest_revision'
app/controllers/application_controller.rb:397:in `block in with_resolved_locale'
app/controllers/application_controller.rb:397:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:356:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/request_tracker.rb:187:in `call'

回溯

nokogiri-1.12.5-x86_64 (linux) lib/nokogiri/html5/document_fragment.rb:38:in `fragment'
nokogiri-1.12.5-x86_64 (linux) lib/nokogiri/html5/document_fragment.rb:38:in `initialize'
nokogiri-1.12.5-x86_64 (linux) lib/nokogiri/html5/document_fragment.rb:52:in `new'
nokogiri-1.12.5-x86_64 (linux) lib/nokogiri/html5/document_fragment.rb:52:in `parse'
nokogiri-1.12.5-x86_64 (linux) lib/nokogiri/html5.rb:242:in `fragment'
lib/discourse_diff.rb:171:in `tokenize_html_blocks'
lib/discourse_diff.rb:10:in `initialize'
app/serializers/post_revision_serializer.rb:117:in `new'
app/serializers/post_revision_serializer.rb:117:in `body_changes'
(eval):18:in `_fast_attributes'

环境

HTTP 主机:jai.community

这是在我们为您托管的网站上吗?我们需要查看导致异常行为的差异。

它是自托管的。分享差异给您最好的方式是什么?

如果没有任何机密内容,您能在这里尝试复现吗?只需发布一条回复,然后等待 10 分钟,再对问题进行编辑。

这并不是一个公开社区,且所涉材料是关于尚未公开的测试版产品。因此,出于对材料作者和 Discourse 团队双方的尊重,我更倾向于不在此分享。还有其他简单的方法吗?

1 个赞

我猜是“分而治之”?尝试逐步缩小复现范围,直到找到问题所在的代码行?

1 个赞

我是否应该将该特定主题的内容通过私信发送给您,发布在 Meta 中?

请随意,特别是如果您能创建一个复现步骤。