有时当我的Ruby on Rails应用程序抛出异常时,网络请求无法响应。其他客户端仍然能够连接到服务器,但服务器响应速度明显较慢。如果我CMD+C
要杀死服务器,那么当服务器关闭时,控制台中会突然出现异常(由于我的基本控制器中的默认异常处理程序中的代码中有puts
语句。
例如:
<NoMethodError> undefined method 'where' for #<Array:0x007f9555b7f380>
通常情况下,我假设我的异常处理程序阻止了进程,但问题是偶发的,而且异常回溯正确地指向导致上述异常的行。我终止时,控制台中还会出现此消息:
2017-07-06 05:09:13 -0700: Read error: #<IOError: closed stream>
/Users/zaneclaes/.rvm/gems/ruby-2.3.0/gems/puma-3.8.2/lib/puma/reactor.rb:182:in `write'
/Users/zaneclaes/.rvm/gems/ruby-2.3.0/gems/puma-3.8.2/lib/puma/reactor.rb:182:in `<<'
/Users/zaneclaes/.rvm/gems/ruby-2.3.0/gems/puma-3.8.2/lib/puma/reactor.rb:182:in `block in add'
/Users/zaneclaes/.rvm/gems/ruby-2.3.0/gems/puma-3.8.2/lib/puma/reactor.rb:180:in `synchronize'
/Users/zaneclaes/.rvm/gems/ruby-2.3.0/gems/puma-3.8.2/lib/puma/reactor.rb:180:in `add'
/Users/zaneclaes/.rvm/gems/ruby-2.3.0/gems/puma-3.8.2/lib/puma/server.rb:450:in `process_client'
/Users/zaneclaes/.rvm/gems/ruby-2.3.0/gems/puma-3.8.2/lib/puma/server.rb:299:in `block in run'
/Users/zaneclaes/.rvm/gems/ruby-2.3.0/gems/puma-3.8.2/lib/puma/thread_pool.rb:120:in `block in spawn_thread'
虽然我不清楚这是出于异常服务器关闭,还是同一问题的症状。使用Ruby 2.3.0
和Rails 5.0.2
。