由于CVE使我们的应用程序升级到Rails 4.1.12和Rack 1.5.5,我们似乎会随机出现502。约1%的请求,我不能一直重新创建的问题,只有观察它(这是非常令人沮丧的,你可以想象)。我们一直在运行4.1.8和机架1.5.2 ...我尝试降级Rack,但仍然观察问题,但由于遵从的性质等原因,返回到Rails 4.1.8可能会非常复杂。乘客EBADF文件描述符异常502
我们使用带有nginx的Ruby 2.1.5的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这个问题,并没有看到任何人遇到同样的问题。有关如何确定究竟是什么造成这一点的任何提示?
Passenger是否以Nginx作为模块编译?如果是这样,请显示Nginx的版本和这个特定的Passenger模块 – Anatoly
我们使用Phusion的官方deb回购安装了乘客... – bruno