[John Belmonte]
Just reporting that I got this spurious error with Python 2.4,
mod_python 3.2.10, and ZODB 3.6.  I don't see what I could be doing
wrong at the app level to cause it.

      SystemError: object at 0x2aaab031dc00 with type
BTrees._OOBTree.OOBucket not in the cache despite that we just
unghostified it

The only known cause for that was first discovered in comment #32(!) here:


If you were running a debug build, the process would have stopped
after printing this message:

   The only known cause is multiple threads trying to ghost and
   unghost the object simultaneously.
   That's not legal, but ZODB can't stop it.
   See Collector #1350.

That's a thread-related bug in code calling ZODB.  There's nothing
ZODB can do to stop or repair it, and ZODB can't even detect it
reliably.  The ZODB code that unghostifies an object "immediately"
checks right after to verify that the unghostified object is in the
ZODB cache.  If it isn't, you get this message.  The only way for that
to happen is if some /other/ thread sneaks in during the "immediately"
window and ghosts the object again -- or something even more bizarre
than that happened, but no such other mechanism is known.
For more information about ZODB, see the ZODB Wiki:

ZODB-Dev mailing list  -  ZODB-Dev@zope.org

Reply via email to