[Zope] repost of ImplicitAcquirerWrapper

Martijn Pieters mj@digicool.com
Mon, 18 Sep 2000 20:05:41 +0200


On Sat, Sep 16, 2000 at 02:04:59PM -0400, Chalu Kim wrote:
> Here is the trace;
> 
> 2000-09-16T17:34:55 ERROR(200) ZODB Couldn't load state for
> '\000\000\000\000\000\000\017\225'
> Traceback (innermost last):
>   File /usr/local/Zope-2.2.0-src/lib/python/ZODB/Connection.py, line
> 447, in setstate
> SystemError: Failed to import class ImplicitAcquirerWrapper from module
> Acquisition
>
> This problem occurs with w_pcgi.py with 2.2.0 source. Starting is fine
> but it renders a directory viewable but unmanageable..
> 
> I tried to import and it only works when in Zope/lib/python. Others will
> result in error "No module named Acquisition".

(From a private email, also):
> In particular, the problem is related to mysqlUserFolder. The whole
> directory goes sort of sour and the directory becomes viwable but
> unmanageable.

Hmm.. I am not sure what goes on here, but I suspect that mysqlUserFolder
is at fault here. It seems it (or another faulty product) stores wrapped
objects in the ODB, and IIRC this shouldn't happen.

To be honest, I have never looked deeply into the voodoo that is
pickling/unpickling.

> I started getting into ZODB and find ways to check soundness of the
> database itself. Any pointer on this?

There are a few tools for analysis and recovery:

  - fsrecover.py, which can be found in lib/python/ZODB of a Zope
    distribution, repairs damaged Data.fs files. Start with python
    fsrecover.py /path/to/Data.fs.

  - tranalyzer (http://www.zope.org/Members/tsarna/Tranalyzer) let's you
    look athe contents of a ZODB, in real time if necessary.

However, this is a problem with a correct pickle, but the class needed for
the unpickling isn't available. ImplicitAcquirerWrapper can never be
imported from Acquisition however.

-- 
Martijn Pieters
| Software Engineer  mailto:mj@digicool.com
| Digital Creations  http://www.digicool.com/
| Creators of Zope   http://www.zope.org/
---------------------------------------------