CookieStore::CookieOverflow

I have recently upgraded to rails 2.1.0. and since I have, the parts of my app that deal with CookieStore (sessions) has failed to work any longer. In Crome and most other browsers my code simply fails, IE7 is a little more forgiving since I can get logged in and then I can only see certain pages. My session code is pretty simple, a session is created by saying:

session[:user] = @user

@user being the info collected from the users table, yada, yada, yada. Here is the error I get when I run my app in IE7:

CGI::Session::CookieStore::CookieOverflow (CGI::Session::CookieStore::CookieOverflow):     c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/session/cookie_store.rb:111:in `close'     c:/ruby/lib/ruby/1.8/cgi/session.rb:324:in `close'     c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/base.rb:1231:in `close_session'     c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/base.rb:1267:in `process_cleanup_without_session_management_support'     c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/session_management.rb:140:in `process_cleanup_without_components'     c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/components.rb:162:in `process_cleanup'     c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/base.rb:537:in `process_without_filters'     c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/filters.rb:569:in `process_without_session_management_support'     c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/session_management.rb:130:in `process'     c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/base.rb:389:in `process'     c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/dispatcher.rb:149:in `handle_request'     c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/dispatcher.rb:107:in `dispatch'     c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/dispatcher.rb:104:in `synchronize'     c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/dispatcher.rb:104:in `dispatch'     c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/dispatcher.rb:120:in `dispatch_cgi'     c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/dispatcher.rb:35:in `dispatch'     c:/ruby/lib/ruby/gems/1.8/gems/rails-2.1.0/lib/webrick_server.rb:112:in `handle_dispatch'     c:/ruby/lib/ruby/gems/1.8/gems/rails-2.1.0/lib/webrick_server.rb:78:in `service'     c:/ruby/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'     c:/ruby/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'     c:/ruby/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'     c:/ruby/lib/ruby/1.8/webrick/server.rb:162:in `start'     c:/ruby/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'     c:/ruby/lib/ruby/1.8/webrick/server.rb:95:in `start'     c:/ruby/lib/ruby/1.8/webrick/server.rb:92:in `each'     c:/ruby/lib/ruby/1.8/webrick/server.rb:92:in `start'     c:/ruby/lib/ruby/1.8/webrick/server.rb:23:in `start'     c:/ruby/lib/ruby/1.8/webrick/server.rb:82:in `start'     c:/ruby/lib/ruby/gems/1.8/gems/rails-2.1.0/lib/webrick_server.rb:62:in `dispatch'     c:/ruby/lib/ruby/gems/1.8/gems/rails-2.1.0/lib/commands/servers/webrick.rb:66     c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require'     c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'     c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/dependencies.rb:509:in `require'     c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/dependencies.rb:354:in `new_constants_in'     c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/dependencies.rb:509:in `require'     c:/ruby/lib/ruby/gems/1.8/gems/rails-2.1.0/lib/commands/server.rb:39     c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require'     c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'     ./script/server:3     -e:4:in `load'     -e:4

Rendering c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/templates/rescues/layout.erb (internal_server_error) /!\ FAILSAFE /!\ Wed Oct 08 15:08:52 -0600 2008   Status: 500 Internal Server Error   CGI::Session::CookieStore::CookieOverflow     c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/session/cookie_store.rb:111:in `close'     c:/ruby/lib/ruby/1.8/cgi/session.rb:324:in `close'     c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/base.rb:1231:in `close_session'     c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/base.rb:1267:in `process_cleanup_without_session_management_support'     c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/session_management.rb:140:in `process_cleanup_without_components'     c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/components.rb:162:in `process_cleanup'     c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/base.rb:537:in `process_without_filters'     c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/filters.rb:569:in `process_without_session_management_support'     c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/session_management.rb:130:in `process'     c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/base.rb:389:in `process'     c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/dispatcher.rb:149:in `handle_request'     c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/dispatcher.rb:107:in `dispatch'     c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/dispatcher.rb:104:in `synchronize'     c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/dispatcher.rb:104:in `dispatch'     c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/dispatcher.rb:120:in `dispatch_cgi'     c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/dispatcher.rb:35:in `dispatch'     c:/ruby/lib/ruby/gems/1.8/gems/rails-2.1.0/lib/webrick_server.rb:112:in `handle_dispatch'     c:/ruby/lib/ruby/gems/1.8/gems/rails-2.1.0/lib/webrick_server.rb:78:in `service'     c:/ruby/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'     c:/ruby/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'     c:/ruby/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'     c:/ruby/lib/ruby/1.8/webrick/server.rb:162:in `start'     c:/ruby/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'     c:/ruby/lib/ruby/1.8/webrick/server.rb:95:in `start'     c:/ruby/lib/ruby/1.8/webrick/server.rb:92:in `each'     c:/ruby/lib/ruby/1.8/webrick/server.rb:92:in `start'     c:/ruby/lib/ruby/1.8/webrick/server.rb:23:in `start'     c:/ruby/lib/ruby/1.8/webrick/server.rb:82:in `start'     c:/ruby/lib/ruby/gems/1.8/gems/rails-2.1.0/lib/webrick_server.rb:62:in `dispatch'     c:/ruby/lib/ruby/gems/1.8/gems/rails-2.1.0/lib/commands/servers/webrick.rb:66     c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require'     c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'     c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/dependencies.rb:509:in `require'     c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/dependencies.rb:354:in `new_constants_in'     c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/dependencies.rb:509:in `require'     c:/ruby/lib/ruby/gems/1.8/gems/rails-2.1.0/lib/commands/server.rb:39     c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require'     c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'     ./script/server:3     -e:4:in `load'     -e:4

Sorry for the mess. Anyone know what this means? Thanks,

-S

Hi,

John Barnette wrote:

You're storing too much data. You should generally avoid storing 'real' objects in the session. Instead, just store the ID:

  session[:user_id] = @user.id

...and revivify the actual user object when you need it.

~ j.

That was it. Thank you. I wasted a whole day trying to figure it out but at least I can now stop pulling my hair out.

-S