[Zope-dev] It's me again :(

Sidnei da Silva sidnei at awkly.org
Tue Dec 16 08:22:44 EST 2003


On Mon, Dec 15, 2003 at 09:21:47PM -0200, Sidnei da Silva wrote:
| So... this time I got a really weird one. I'm storing a subclass of
| File (Archetypes newBaseUnit, File is the only base class) into a
| PersistentMapping, and I'm getting:
|  
|    'Can't pickle objects in acquisition wrappers'
| 
| However, as far as I can see, the object is *not* acquisition
| wrapper. If I put a try: except in ZODB.serialize and try obj.aq_base,
| I get an attribute error, and aq_base(obj) is obj returns True. It
| *smells* like Implicit.__getstate__ is being called, though I can't
| really tell :( 

Answering my own question, a visit to gdb showed that the problem was
not the newBaseUnit, but an object that it was referencing. Its fun
that it didn't happen with 2.7.

Breakpoint 1, Wrappers_are_not_picklable (Wrapper=0x41a17840,
args=0x418e696c)
    at Acquisition/_Acquisition.c:1114
1114    }
(gdb) l
1109    Wrappers_are_not_picklable(PyObject *Wrapper, PyObject *args)
1110    {
1111      PyErr_SetString(PyExc_TypeError, 
1112                      "Can't pickle objects in acquisition
wrappers.");
1113      return NULL;
1114    }
1115    
1116    
1117    static struct PyMethodDef Wrapper_methods[] = {
1118      {"__init__", (PyCFunction)Wrapper__init__, 0,
(gdb) pyo Wrapper
object  : <mimetype text/plain>
type    : ImplicitAcquirerWrapper
refcount: 4
address : 0x41a17840

-- 
Sidnei da Silva <sidnei at awkly.org>
http://awkly.org - dreamcatching :: making your dreams come true
http://plone.org/about/team#dreamcatcher

Whip me.  Beat me.  Make me maintain AIX.
	-- Stephan Zielinski



More information about the Zope-Dev mailing list