Rails application not working, no error displayed, just error code 500

I was facing a strange problem. My application was working fine, but after some time it stopped to respond. It just returned error code 500. No error message on the screen, no error message in the error log, everything seemed to be fine.

I found few hints on the internet – reboot, delete all sessions… One of them recommended to run script/console. It worked fine, until I tried to get any data. Finally I got the error message:

Logger::ShiftingError: Shifting failed. closed stream
from f:/win32app/ruby/lib/ruby/1.8/logger.rb:501:in `write'
from f:/win32app/ruby/lib/ruby/1.8/monitor.rb:238:in `synchronize'
from f:/win32app/ruby/lib/ruby/1.8/logger.rb:496:in `write'
from f:/win32app/ruby/lib/ruby/1.8/logger.rb:326:in `add'
from f:/win32app/ruby/lib/ruby/1.8/logger.rb:348:in `debug'
from f:/win32app/ruby/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/connection_adapters/abstract_adapter.rb:126:in `log_info'
from f:/win32app/ruby/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/connection_adapters/abstract_adapter.rb:119:in `log'
from f:/win32app/ruby/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/connection_adapters/mysql_adapter.rb:184:in `execute'
from f:/win32app/ruby/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/connection_adapters/mysql_adapter.rb:331:in `connect'
from f:/win32app/ruby/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/connection_adapters/mysql_adapter.rb:87:in `initialize'
from f:/win32app/ruby/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/connection_adapters/mysql_adapter.rb:36:in `new'
from f:/win32app/ruby/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/connection_adapters/mysql_adapter.rb:36:in `mysql_connection'
from f:/win32app/ruby/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/connection_adapters/abstract/connection_specification.rb:251:in `send'
from f:/win32app/ruby/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/connection_adapters/abstract/connection_specification.rb:251:in `connection_without_query_cache='
from f:/win32app/ruby/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/query_cache.rb:54:in `connection='
from f:/win32app/ruby/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/connection_adapters/abstract/connection_specification.rb:220:in `retrieve_connection'
from f:/win32app/ruby/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/connection_adapters/abstract/connection_specification.rb:78:in `connection'
from f:/win32app/ruby/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/base.rb:764:in `sanitize'
from f:/win32app/ruby/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/base.rb:950:in `find_one'
from f:/win32app/ruby/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/base.rb:941:in `find_from_ids'
from f:/win32app/ruby/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/base.rb:382:in `find'
from (irb):1>> exit

And the problem was almost solved – problem with log rotation.

So, if you face the same problem, try to perform few operations in your rails console… and if you are lucky, you will find the bug.