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,
    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
1113      return NULL;
1114    }
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 <[EMAIL PROTECTED]>
http://awkly.org - dreamcatching :: making your dreams come true

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

Zope-Dev maillist  -  [EMAIL PROTECTED]
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope )

Reply via email to