Skip auto-linking in very large text nodes
A large comment body was causing Regexp::TimeoutError in production. The URI regexp isn't catastrophically backtracking — it's linear — but with a long enough string it exceeds the 1s Regexp.timeout set by Rails. Skip scanning text nodes over 10KB, which is well beyond any reasonable content for auto-linking and still keeps us many orders of magnitued under the timeout on an unloaded machine. Fixes FIZZY-Q4 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -125,6 +125,17 @@ class HtmlHelperTest < ActionView::TestCase
|
||||
end
|
||||
end
|
||||
|
||||
test "skip auto-linking in very large text nodes" do
|
||||
url = "https://example.com"
|
||||
large_text = "x" * 5_000 + " #{url} " + "y" * 5_000
|
||||
input = "<p>#{large_text}</p>"
|
||||
|
||||
result = format_html(input)
|
||||
|
||||
assert_no_match(/<a/, result)
|
||||
assert_includes result, url
|
||||
end
|
||||
|
||||
test "don't autolink content in excluded elements" do
|
||||
%w[ figcaption pre code ].each do |element|
|
||||
assert_equal_html \
|
||||
|
||||
Reference in New Issue
Block a user