FW: [ZODB-Dev] More exciting ZODB errors ;-)

Tim Peters tim at zope.com
Thu Dec 15 15:00:13 EST 2005


FYI, I also added this info to Chris's other bug report, at

    http://www.zope.org/Collectors/Zope/1971


-----Original Message-----
From: zodb-dev-bounces+tim=zope.com at zope.org
[mailto:zodb-dev-bounces+tim=zope.com at zope.org] On Behalf Of Dieter Maurer
Sent: Thursday, December 15, 2005 11:52 AM
To: Chris Withers
Cc: zodb-dev at zope.org
Subject: Re: [ZODB-Dev] More exciting ZODB errors ;-)

Chris Withers wrote at 2005-12-14 16:23 +0000:
> ...
>   File "lib/python/ZODB/Connection.py", line
>788, in _setstate_noncurrent
>     assert end is not None
>AssertionError

This means that the latest modification for this object
lies before the respective transaction.

In this case, we should not have an invalidation for the object,
such that we would not call "_setstate_current".

I expect a missing "flush_invalidations" during "Connection._setDB".
I had to add such a call in our ZODB version:

    def _setDB(self, odb, mvcc=None, txn_mgr=DEPRECATED_ARGUMENT,
               transaction_manager=None, synch=None):
        ....
        self.transaction_manager = transaction_manager or
transaction.manager
        # DM 2005-08-22: always call '_flush_invalidations' as it does
        #  more than cache handling only
        self._flush_invalidations()
        if self._reset_counter != global_reset_counter:
            # New code is in place.  Start a new cache.
            self._resetCache()
        # DM 2005-08-22: always call '_flush_invalidations'
##        else:
##            self._flush_invalidations()


-- 
Dieter




More information about the ZODB-Dev mailing list