中间件 - 文档树深度超限

更新到 2026.4.0-latest 后,我在日志中看到了这个错误
(4b2c45376d)

Message (32 copies reported)

ArgumentError (Document tree depth limit exceeded)
lib/middleware/crawler_hooks.rb:29:in 'Middleware::CrawlerHooks#transform_response'
lib/middleware/crawler_hooks.rb:16:in 'Middleware::CrawlerHooks#call'
lib/content_security_policy/middleware.rb:12:in 'ContentSecurityPolicy::Middleware#call'
lib/middleware/anonymous_cache.rb:418:in 'Middleware::AnonymousCache#call'
lib/middleware/csp_script_nonce_injector.rb:12:in 'Middleware::CspScriptNonceInjector#call'
config/initializers/008-rack-cors.rb:14:in 'Discourse::Cors#call'
lib/middleware/default_headers.rb:13:in 'Middleware::DefaultHeaders#call'
config/initializers/100-quiet_logger.rb:20:in 'DiscourseRackQuietAssetsLogger#call'
config/initializers/100-silence_logger.rb:29:in 'SilenceLogger#call'
lib/middleware/enforce_hostname.rb:23:in 'Middleware::EnforceHostname#call'
lib/middleware/request_tracker.rb:321:in 'Middleware::RequestTracker#call'
lib/middleware/overload_protections.rb:22:in 'Middleware::OverloadProtections#call'
lib/middleware/processing_request.rb:14:in 'Middleware::ProcessingRequest#call'

Backtrace

nokogiri-1.19.2-x86_64-linux (gnu) lib/nokogiri/html5/document.rb:153:in 'Nokogiri::Gumbo.parse'
nokogiri-1.19.2-x86_64-linux (gnu) lib/nokogiri/html5/document.rb:153:in 'Nokogiri::HTML5::Document.do_parse'
nokogiri-1.19.2-x86_64-linux (gnu) lib/nokogiri/html5/document.rb:123:in 'Nokogiri::HTML5::Document.parse'
nokogiri-1.19.2-x86_64-linux (gnu) lib/nokogiri/html5.rb:276:in 'Nokogiri::HTML5.parse'
lib/middleware/crawler_hooks.rb:29:in 'Middleware::CrawlerHooks#transform_response'
lib/middleware/crawler_hooks.rb:16:in 'Middleware::CrawlerHooks#call'
rack (2.2.23) lib/rack/tempfile_reaper.rb:15:in 'Rack::TempfileReaper#call'
rack (2.2.23) lib/rack/conditional_get.rb:27:in 'Rack::ConditionalGet#call'
rack (2.2.23) lib/rack/head.rb:12:in 'Rack::Head#call'
actionpack (8.0.5) lib/action_dispatch/http/permissions_policy.rb:38:in 'ActionDispatch::PermissionsPolicy::Middleware#call'
lib/content_security_policy/middleware.rb:12:in 'ContentSecurityPolicy::Middleware#call'
lib/middleware/anonymous_cache.rb:418:in 'Middleware::AnonymousCache#call'
lib/middleware/csp_script_nonce_injector.rb:12:in 'Middleware::CspScriptNonceInjector#call'
config/initializers/008-rack-cors.rb:14:in 'Discourse::Cors#call'
rack (2.2.23) lib/rack/session/abstract/id.rb:266:in 'Rack::Session::Abstract::Persisted#context'
rack (2.2.23) lib/rack/session/abstract/id.rb:260:in 'Rack::Session::Abstract::Persisted#call'
actionpack (8.0.5) lib/action_dispatch/middleware/cookies.rb:706:in 'ActionDispatch::Cookies#call'
actionpack (8.0.5) lib/action_dispatch/middleware/callbacks.rb:31:in 'block in ActionDispatch::Callbacks#call'
activesupport (8.0.5) lib/active_support/callbacks.rb:100:in 'ActiveSupport::Callbacks#run_callbacks'
actionpack (8.0.5) lib/action_dispatch/middleware/callbacks.rb:30:in 'ActionDispatch::Callbacks#call'
actionpack (8.0.5) lib/action_dispatch/middleware/debug_exceptions.rb:31:in 'ActionDispatch::DebugExceptions#call'
actionpack (8.0.5) lib/action_dispatch/middleware/show_exceptions.rb:32:in 'ActionDispatch::ShowExceptions#call'
logster (2.20.1) lib/logster/middleware/reporter.rb:40:in 'Logster::Middleware::Reporter#call'
lib/middleware/default_headers.rb:13:in 'Middleware::DefaultHeaders#call'
railties (8.0.5) lib/rails/rack/logger.rb:41:in 'Rails::Rack::Logger#call_app'
railties (8.0.5) lib/rails/rack/logger.rb:29:in 'Rails::Rack::Logger#call'
config/initializers/100-quiet_logger.rb:20:in 'DiscourseRackQuietAssetsLogger#call'
config/initializers/100-silence_logger.rb:29:in 'SilenceLogger#call'
actionpack (8.0.5) lib/action_dispatch/middleware/request_id.rb:34:in 'ActionDispatch::RequestId#call'
lib/middleware/enforce_hostname.rb:23:in 'Middleware::EnforceHostname#call'
rack (2.2.23) lib/rack/method_override.rb:24:in 'Rack::MethodOverride#call'
actionpack (8.0.5) lib/action_dispatch/middleware/executor.rb:16:in 'ActionDispatch::Executor#call'
rack (2.2.23) lib/rack/sendfile.rb:127:in 'Rack::Sendfile#call'
rack-mini-profiler (4.0.1) lib/mini_profiler.rb:179:in 'Rack::MiniProfiler#call'
message_bus (4.5.2) lib/message_bus/rack/middleware.rb:60:in 'MessageBus::Rack::Middleware#call'
lib/middleware/request_tracker.rb:321:in 'Middleware::RequestTracker#call'
actionpack (8.0.5) lib/action_dispatch/middleware/remote_ip.rb:96:in 'ActionDispatch::RemoteIp#call'
lib/middleware/overload_protections.rb:22:in 'Middleware::OverloadProtections#call'
lib/middleware/processing_request.rb:14:in 'Middleware::ProcessingRequest#call'
railties (8.0.5) lib/rails/engine.rb:535:in 'Rails::Engine#call'
railties (8.0.5) lib/rails/railtie.rb:226:in 'Kernel#public_send'
railties (8.0.5) lib/rails/railtie.rb:226:in 'Rails::Railtie.method_missing'
rack (2.2.23) lib/rack/urlmap.rb:74:in 'block in Rack::URLMap#call'
rack (2.2.23) lib/rack/urlmap.rb:58:in 'Array#each'
rack (2.2.23) lib/rack/urlmap.rb:58:in 'Rack::URLMap#call'
rack (2.2.23) lib/rack/tempfile_reaper.rb:15:in 'Rack::TempfileReaper#call'
pitchfork (0.18.2) lib/pitchfork/chunked.rb:105:in 'Pitchfork::Chunked#call'
rack (2.2.23) lib/rack/content_length.rb:17:in 'Rack::ContentLength#call'
pitchfork (0.18.2) lib/pitchfork/http_server.rb:868:in 'Pitchfork::HttpServer#process_client'
pitchfork (0.18.2) lib/pitchfork/http_server.rb:1017:in 'Pitchfork::HttpServer#worker_loop'
pitchfork (0.18.2) lib/pitchfork/http_server.rb:616:in 'block in Pitchfork::HttpServer#spawn_worker'
pitchfork (0.18.2) lib/pitchfork/http_server.rb:1222:in 'block in Pitchfork::HttpServer#fork_sibling'
pitchfork (0.18.2) lib/pitchfork.rb:170:in 'block in Pitchfork.clean_fork'
pitchfork (0.18.2) lib/pitchfork.rb:168:in 'Kernel#catch'
pitchfork (0.18.2) lib/pitchfork.rb:168:in 'Pitchfork.clean_fork'
pitchfork (0.18.2) lib/pitchfork/http_server.rb:690:in 'Pitchfork::HttpServer#spawn_initial_mold'
pitchfork (0.18.2) lib/pitchfork/http_server.rb:176:in 'Pitchfork::HttpServer#start'
pitchfork (0.18.2) exe/pitchfork:110:in '<top (required)>'
vendor/bundle/ruby/3.4.0/bin/pitchfork:25:in 'Kernel#load'
vendor/bundle/ruby/3.4.0/bin/pitchfork:25:in '<main>'

您能分享一下触发此问题的页面吗?

2 个赞

在日志中看到了这个

hostname ip-app
process_id 2368
application_version 4b2c45376db6321d798dba51dbb3b4fbf0f36976
HTTP_HOST discussion.mcebuddy2x.com
REQUEST_URI /uploads/short-url/iDeby35Xig2kyc6V3FyjmmEPRHL.zip?tl=fr
REQUEST_METHOD GET
HTTP_USER_AGENT Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.7727.116 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
HTTP_ACCEPT text/html,application/xhtml+xml,application/signed-exchange;v=b3,application/xml;q=0.9,/;q=0.8
HTTP_X_FORWARDED_FOR 66.249.72.4
HTTP_X_REAL_IP 66.249.72.4
time 晚上 9:15
params tl fr
1 个赞