[Zope-dev] Unpickleable Error

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


Nick Garcia wrote:
> 
> 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.

Well.... since my product *does* use the SQL class, and the SQL class
uses the DA class, and the DA class uses cStringIO, I guess
*technically* I am using it.  We create SQL methods then store them as
properties of the class.  This may be what it's choking on.

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