sunjam
(james.network)
1
正在帮助 @rakekniven 解决论坛性能问题,用户已无法上传图片。此错误频繁出现。此人似乎也遇到了类似错误且无法上传图片。
论坛上的插件
- 预设回复
- discourse-checklist
- discourse-legal-tools
- discourse-solved
- docker_manager
- styleguide - 已禁用
Message (661 copies reported) on 2.9.0.beta4
#<Net::OpenTimeout: execution expired>
Backtrace
/usr/local/lib/ruby/2.7.0/net/http.rb:960:in initialize' /usr/local/lib/ruby/2.7.0/net/http.rb:960:in open’
/usr/local/lib/ruby/2.7.0/net/http.rb:960:in block in connect' /usr/local/lib/ruby/2.7.0/timeout.rb:105:in timeout’
/usr/local/lib/ruby/2.7.0/net/http.rb:958:in connect' /usr/local/lib/ruby/2.7.0/net/http.rb:943:in do_start’
/usr/local/lib/ruby/2.7.0/net/http.rb:932:in start' /usr/local/lib/ruby/2.7.0/net/http.rb:606:in start’
/var/www/discourse/lib/final_destination.rb:515:in safe_session' /var/www/discourse/lib/final_destination.rb:455:in safe_get’
sunjam
(james.network)
3
上传错误
Net::OpenTimeout : execution expired
消息 (已报告 273757 份)
无法正确处理劫持的响应:Net::OpenTimeout : execution expired
回溯
/usr/local/lib/ruby/2.7.0/net/http.rb:960:in initialize' /usr/local/lib/ruby/2.7.0/net/http.rb:960:in open’
/usr/local/lib/ruby/2.7.0/net/http.rb:960:in block in connect' /usr/local/lib/ruby/2.7.0/timeout.rb:105:in timeout’
/usr/local/lib/ruby/2.7.0/net/http.rb:958:in connect' /usr/local/lib/ruby/2.7.0/net/http.rb:943:in do_start’
/usr/local/lib/ruby/2.7.0/net/http.rb:932:in start' /usr/local/lib/ruby/2.7.0/net/http.rb:606:in start’
/var/www/discourse/lib/final_destination.rb:515:in safe_session' /var/www/discourse/lib/final_destination.rb:455:in safe_get’
/var/www/discourse/lib/final_destination.rb:147:in get' /var/www/discourse/lib/file_helper.rb:68:in download’
/var/www/discourse/app/controllers/user_avatars_controller.rb:158:in proxy_avatar' /var/www/discourse/app/controllers/user_avatars_controller.rb:51:in block in show_proxy_letter’
/var/www/discourse/lib/hijack.rb:56:in instance_eval' /var/www/discourse/lib/hijack.rb:56:in block in hijack’
/var/www/discourse/lib/scheduler/defer.rb:94:in block in do_work' rails_multisite-4.0.1/lib/rails_multisite/connection_management.rb:80:in with_connection’
/var/www/discourse/lib/scheduler/defer.rb:89:in do_work' /var/www/discourse/lib/scheduler/defer.rb:79:in block (2 levels) in start_thread’
环境
sunjam
(james.network)
4
在 Stack Overflow 上找到了解决 Ruby 中此问题的方法:
似乎是某些版本的 libc 在解析 DNS 路由时存在问题。在花费数小时寻找解决方案后,您只需在代码开头添加 require 'resolv-replace' 即可。
更多信息:Use Ruby DNS resolver to handle DNS timeout in Net::HTTP by pranas · Pull Request #597 · ruby/ruby · GitHub
希望这能帮助到未来的某个人。