gpt4 book ai didi

ruby-on-rails - 乘客 EBADF 文件描述符异常 502

转载 作者:行者123 更新时间:2023-12-04 18:32:15 29 4
gpt4 key购买 nike

由于 CVE 导致我们将应用程序升级到 Rails 4.1.12 和 Rack 1.5.5,我们似乎随机出现 502。大约 1% 的请求,我不能始终如一地重新创建问题,只能观察它(这非常令人沮丧,你可以想象)。我们一直在运行 4.1.8 和 rack 1.5.2 ...我尝试降级 Rack 并且仍然观察到问题,但是由于合规性等原因,回到 Rails 4.1.8 可能会非常复杂。

我们使用带有 Ruby 2.1.5 和 nginx 的 Passenger 5.0.6(prod)和 5.0.13(staging)。

我看到的模式是:

nginx-error:  [ 2015-07-12 16:12:05.3947 2176/7f97fb7fe700 age/Hel/Req/Utils.cpp:89 ]: [Client 7-50] Sending 502 response: application did not send a     complete response
nginx-error: App 2210 stderr: [ 2015-07-12 16:12:05.9232 2813/0x007f6eb5056088(Worker 1) utils.rb:85 ]: *** Exception Errno::EBADF in Passenger RequestHandler's client socket (Bad file descriptor - writev()) (process 2813, thread 0x007f6eb5056088(Worker 1)):
nginx-error: App 2210 stderr: #011from /usr/lib/ruby/vendor_ruby/phusion_passenger/ruby_core_io_enhancements.rb:41:in `writev'
nginx-error: App 2210 stderr: #011from /usr/lib/ruby/vendor_ruby/phusion_passenger/ruby_core_io_enhancements.rb:41:in `writev'
nginx-error: App 2210 stderr: #011from /usr/lib/ruby/vendor_ruby/phusion_passenger/utils/unseekable_socket.rb:126:in `writev'
nginx-error: App 2210 stderr: #011from /usr/lib/ruby/vendor_ruby/phusion_passenger/rack/thread_handler_extension.rb:177:in `process_body'
nginx-error: App 2210 stderr: #011from /usr/lib/ruby/vendor_ruby/phusion_passenger/rack/thread_handler_extension.rb:104:in `process_request'
nginx-error: App 2210 stderr: #011from /usr/lib/ruby/vendor_ruby/phusion_passenger/request_handler/thread_handler.rb:149:in `accept_and_process_next_request'
nginx-error: App 2210 stderr: #011from /usr/lib/ruby/vendor_ruby/phusion_passenger/request_handler/thread_handler.rb:110:in `main_loop'
nginx-error: App 2210 stderr: #011from /usr/lib/ruby/vendor_ruby/phusion_passenger/request_handler.rb:414:in `block (3 levels) in start_threads'
nginx-error: App 2210 stderr: #011from /usr/lib/ruby/vendor_ruby/phusion_passenger/utils.rb:111:in `block in create_thread_and_abort_on_exception'

我在 IRC#passenger 上提出了这个问题,但没有看到任何人遇到同样的问题。关于如何找出究竟是什么导致这种情况的任何提示?

最佳答案

乘客作者在这里。

我相信这个问题是由应用程序中的某些东西引起的,可能是 gem ——而不是乘客。 EBADF 错误是从应用程序中引发的,因此很可能是某个 gem(可能具有 native 扩展名)关闭了错误的文件描述符。但它是哪个 gem ,我不知道。调试此问题的标准方法是逐个禁用 gem,直到找到罪魁祸首。如果您的代码依赖于 gem,这可能会很困难,但是没有很多方法可以处理这个问题。

关于ruby-on-rails - 乘客 EBADF 文件描述符异常 502,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31369980/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com