On 01/27/2011 03:59 AM, Jürgen Herrmann wrote:
> hi there!
> i wrongly posted a bug to the zodb bugtracker on tuesday:
> as it turns out, that bug report was moot. it didn't fix my
> problem. out of curiosity, why is the exception raised inside
> the loop effectifely breaking the loop after the first object
> invalidated? my debug code showed that sometimes ~20 objects
> were in _readCurrent. was this a side effect of the relstorage
> bug involved? or can this happen more frequently? if so, why
> not invalidate all objects in _readCurrent then before re-
> raising the ConflictEror?
That one invalidation is probably some kind of optimization. I don't
think it's necessary. The real invalidation happens later, at a
transaction boundary, when _flush_invalidations() is called.
For more information about ZODB, see the ZODB Wiki:
ZODB-Dev mailing list - ZODB-Dev@zope.org