Marshal data too short - when user id = 51


#1

When a session is created ( disk based not active record ) and the id
of the user record is 21 I get marshal data too short. I am not the
only one by the looks of this
http://wiki.rubyonrails.org/rails/pages/MarshalDataTooShort.

The application is running on Windows with a SQL Server backend.

The suggested workaround is to use ActiveRecord based sessions and the
WIKI does have a patch but it is dated 2004.

Any ideas ? Anyone else seen this ?

Regards

Lee


#2

Just noticed my subject was wrong but I can confirm it is user 21.


#3

On Jul 20, 2007, at 10:09 AM, MagpieUK wrote:

When a session is created ( disk based not active record ) and the id
of the user record is 21 I get marshal data too short. I am not the
only one by the looks of this http://wiki.rubyonrails.org/rails/
pages/MarshalDataTooShort.

I get that under certain circumstances. For certain requests I create
an array of objects that needs to persist for several subsequent
requests. I put it in the session like this:

session[:mappable_items] =
AccountApplication.make_mappable_items_array(@account_applications)

If that array is large enough I get the marshal data too short error,
and subsequently the error 500 message.
I had assumed that the session would actually hold only a pointer to
the array, but the fact that the size of the array changes the
behavior implies that that’s not the case. My Ruby skills and Rails
skills are poor, so I’ve assumed it’s my problem, not Rails or Ruby.