[Zope-dev] Unpickleable Error

Nick Garcia ngarcia@codeit.com
Mon, 19 Jun 2000 15:02:20 -0700


Brian Lloyd wrote:
> 
> > So, I'm getting this error when trying to use one of my Products under
> > Zope 2.2b1:
> >
> >   Error Type: UnpickleableError
> >   Error Value: Cannot pickle <type 'StringO'> objects
> >
> > What exactly is a StringO object, and why can't it be
> > pickled/unpickled?  It worked fine under 2.1, so I'm assuming
> > there have
> > been changes to the pickling routines that haven't been completely
> > cleaned up yet?
> 
> There shouldn't be any changes at all happening to any of the pickling
> machinery... A 'StringO' object is what you get when you use
> cStringIO.StringIO. Is your product using cStringIO for anything? If
> not, it would be best to trace this in the debugger to see what is
> trying to pickle a StringO...

The product isn't using cStringIO.  I didn't even know it existed until
now ;)  I stepped through the code, and in lib/python/ZODB/Connection.py
in the commit() function, when it gets to the line dump(state) on line
347 where state is (apparently) all the correct information for my
object, it gets the UnpickleableError.  I noticed in the Collector that
bug #383 was about Unpickleable errors with SQL methods.  The object
that's trying to get pickled in this case contains SQL methods. 
Granted, bug 383 was from around this time last year, but it's the best
lead I've got so far.  I don't use cStringIO anywhere in my product.

-- 
Nick Garcia | ngarcia@codeit.com
CodeIt Computing | http://codeit.com