# Session overflows, maybe mod\_rails related?

**URL:** <https://www.ruby-forum.com/t/session-overflows-maybe-mod-rails-related/136588>\
**Category:** Rails\
**Created:** [May 4, 2008, 1:50am UTC](https://www.ruby-forum.com/t/session-overflows-maybe-mod-rails-related/136588 "2008-05-04T01:50:41Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![dukael](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/c77e96/32.png) [@dukael](https://www.ruby-forum.com/u/dukael)\
**Post date:** [May 4, 2008, 1:50am UTC](https://www.ruby-forum.com/t/session-overflows-maybe-mod-rails-related/136588/1 "2008-05-04T01:50:41Z")

</div>

Hi all,

I’m constantly getting session overflow errors in my app. It seems to  
be somewhat random and I have trouble reproducing it on a consistent  
basis. Basically, every once in a while, it throws the error and  
renders the 500 internal server page. When I hit refresh however, it  
usually goes away. This seems to happen more often when server load is  
high.

My setup is mod\_rails, Rails 2.0.2, and ActiveRecord session store in  
MySQL. I’ve never seen this error on my development box, which just  
runs the app with a mongrel so it makes me think it might be related  
to mod\_rails – but then again, the error happens somewhat randomly  
and is correlated with heavy server load, so I could be wrong.

Here’s the full error text:

Rendering /home/admin/deployed/cebturf/releases/20080502063852/public/  
500.html (500 Internal Server Error)  
/!\ FAILSAFE /!\ Sat May 03 01:20:46 +0000 2008  
Status: 500 Internal Server Error  
You have a nil object when you didn’t expect it!  
The error occurred while evaluating nil.limit  
/usr/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action\_controller/  
session/active\_record\_store.rb:74:in `data_column_size_limit' /usr/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/ session/active_record_store.rb:144:in`raise\_on\_session\_data\_overflow!’  
/usr/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active\_record/  
callbacks.rb:307:in `send' /usr/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/ callbacks.rb:307:in`callback’  
/usr/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active\_record/  
callbacks.rb:304:in `each' /usr/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/ callbacks.rb:304:in`callback’  
/usr/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active\_record/  
callbacks.rb:212:in `create_or_update' /usr/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/ base.rb:1972:in`save\_without\_validation’  
/usr/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active\_record/  
validations.rb:934:in `save_without_transactions' /usr/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/ transactions.rb:108:in`save’  
/usr/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active\_record/  
connection\_adapters/abstract/database\_statements.rb:66:in  
`transaction' /usr/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/ transactions.rb:80:in`transaction’  
/usr/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active\_record/  
transactions.rb:100:in `transaction' /usr/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/ transactions.rb:108:in`save’  
/usr/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active\_record/  
transactions.rb:120:in `rollback_active_record_state!' /usr/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/ transactions.rb:108:in`save’  
/usr/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action\_controller/  
session/active\_record\_store.rb:310:in `update' /usr/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/ base.rb:1198:in`silence’  
/usr/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action\_controller/  
session/active\_record\_store.rb:310:in `update' /usr/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/ session/active_record_store.rb:317:in`close’  
/usr/lib/ruby/1.8/cgi/session.rb:324:in `close' /usr/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/ base.rb:1247:in`close\_session’  
/usr/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action\_controller/  
base.rb:1292:in `process_cleanup_without_flash' /usr/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/ flash.rb:173:in`process\_cleanup\_without\_session\_management\_support’  
/usr/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action\_controller/  
session\_management.rb:133:in `process_cleanup_without_components' /usr/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/ components.rb:161:in`process\_cleanup’  
/usr/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action\_controller/  
base.rb:532:in `process_without_filters' /usr/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/ filters.rb:685:in`process\_without\_session\_management\_support’  
/usr/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action\_controller/  
session\_management.rb:123:in `process' /usr/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/ base.rb:388:in`process’  
/usr/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action\_controller/  
dispatcher.rb:171:in `handle_request' /usr/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/ dispatcher.rb:115:in`dispatch’  
/usr/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action\_controller/  
dispatcher.rb:126:in `dispatch_cgi' /usr/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/ dispatcher.rb:9:in`dispatch’  
/usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/lib/passenger/  
request\_handler.rb:295:in `process_request' /usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/lib/passenger/ request_handler.rb:175:in`main\_loop’  
/usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/lib/passenger/  
application\_spawner.rb:286:in `start_request_handler' /usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/lib/passenger/ application_spawner.rb:255:in`handle\_spawn\_application’  
/usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/lib/passenger/  
application\_spawner.rb:253:in `fork' /usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/lib/passenger/ application_spawner.rb:253:in`handle\_spawn\_application’  
/usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/lib/passenger/  
application\_spawner.rb:251:in `fork' /usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/lib/passenger/ application_spawner.rb:251:in`handle\_spawn\_application’  
/usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/lib/passenger/  
abstract\_server.rb:291:in ` __send__' /usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/lib/passenger/ abstract_server.rb:291:in`main\_loop’  
/usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/lib/passenger/  
abstract\_server.rb:147:in `start_synchronously' /usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/lib/passenger/ abstract_server.rb:114:in`start’  
/usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/lib/passenger/  
abstract\_server.rb:108:in `fork' /usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/lib/passenger/ abstract_server.rb:108:in`start’  
/usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/lib/passenger/  
application\_spawner.rb:147:in `start' /usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/lib/passenger/ framework_spawner.rb:278:in`handle\_spawn\_application’  
/usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/lib/passenger/  
framework\_spawner.rb:273:in `synchronize' /usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/lib/passenger/ framework_spawner.rb:273:in`handle\_spawn\_application’  
/usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/lib/passenger/  
abstract\_server.rb:291:in ` __send__' /usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/lib/passenger/ abstract_server.rb:291:in`main\_loop’  
/usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/lib/passenger/  
abstract\_server.rb:147:in `start_synchronously' /usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/lib/passenger/ abstract_server.rb:114:in`start’  
/usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/lib/passenger/  
abstract\_server.rb:108:in `fork' /usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/lib/passenger/ abstract_server.rb:108:in`start’  
/usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/lib/passenger/  
framework\_spawner.rb:104:in `start' /usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/lib/passenger/ spawn_manager.rb:106:in`spawn\_application’  
/usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/lib/passenger/  
spawn\_manager.rb:102:in `synchronize' /usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/lib/passenger/ spawn_manager.rb:102:in`spawn\_application’  
/usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/lib/passenger/  
spawn\_manager.rb:178:in `handle_spawn_application' /usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/lib/passenger/ abstract_server.rb:291:in` **send** ’  
/usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/lib/passenger/  
abstract\_server.rb:291:in `main_loop' /usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/lib/passenger/ abstract_server.rb:147:in`start\_synchronously’  
/usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/bin/passenger-spawn-  
server:32

Thoughts?

– Andrew

---

<div class="post-metadata">

**Author:** ![dukael](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/c77e96/32.png) [@dukael](https://www.ruby-forum.com/u/dukael)\
**Post date:** [May 4, 2008, 1:54am UTC](https://www.ruby-forum.com/t/session-overflows-maybe-mod-rails-related/136588/2 "2008-05-04T01:54:47Z")

</div>

Also, to elaborate, I’m not sticking anything huge in the sessions,  
just things like session[:user\_id] = 123 and session[:last\_uri] = /  
some/path.

– Andrew

---

<div class="post-metadata">

**Author:** ![dukael](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/c77e96/32.png) [@dukael](https://www.ruby-forum.com/u/dukael)\
**Post date:** [May 4, 2008, 1:51pm UTC](https://www.ruby-forum.com/t/session-overflows-maybe-mod-rails-related/136588/3 "2008-05-04T13:51:36Z")

</div>

On 4 May 2008, at 00:54, Andrew F. wrote:

> Also, to elaborate, I’m not sticking anything huge in the sessions,  
> just things like session[:user\_id] = 123 and session[:last\_uri] = /  
> some/path.

Are you sticking loads of stuff in the flash (since that it stored in  
the session too)

Fred

---

<div class="post-metadata">

**Author:** ![dukael](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/c77e96/32.png) [@dukael](https://www.ruby-forum.com/u/dukael)\
**Post date:** [May 5, 2008, 3:46am UTC](https://www.ruby-forum.com/t/session-overflows-maybe-mod-rails-related/136588/4 "2008-05-05T03:46:48Z")

</div>

If you trace the error down far enough, it looks likes it’s being  
raised from the passenger gem. So I’d email them.

---

<div class="post-metadata">

**Author:** ![dukael](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/c77e96/32.png) [@dukael](https://www.ruby-forum.com/u/dukael)\
**Post date:** [May 4, 2008, 7:12pm UTC](https://www.ruby-forum.com/t/session-overflows-maybe-mod-rails-related/136588/5 "2008-05-04T19:12:32Z")

</div>

Nope. Just stuff in flash[:notice], none of which exceeds 128  
characters.

On a related note, no similar error seems to appear when use memcached  
session store instead of active record.

– Andrew

On May 4, 4:50 am, Frederick C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
