sunjam
(james.network)
1
@rakekniven のフォーラムのパフォーマンス問題を解決するのを手伝っていますが、ユーザーは画像をアップロードできなくなっています。このエラーが頻繁に発生しています。この人も同様のエラーが発生しており、画像をアップロードできないようです。
フォーラムのプラグイン
- Canned Replies
- 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
Ruby で問題を解決するために Stack Overflow でこれを見つけました。
libc の特定のバージョンで DNS ルートを解決する問題のようです。数時間かけて解決策を探した結果、コードの先頭に require 'resolv-replace' を追加するだけでよいことがわかりました。
詳細はこちら: Use Ruby DNS resolver to handle DNS timeout in Net::HTTP by pranas · Pull Request #597 · ruby/ruby · GitHub
将来、誰かの役に立つことを願っています。