Comment 8 for bug 665452

Revision history for this message
Jürgen Herrmann (xlhost) wrote :

yet another hint: the last attempted packing operation left the database in an persistently inconsistent state, zope restarts did not make this one go away. After restarting zope i immediately hat ReadConflictErrors on various oids in the event.log.
Grabing the oid from the event.log entry and doing the following in a debugger:

from ZODB.utils import p64
container._p_jar[p64(0x123456)]._p_changed = True
import transaction; transaction.commit()

This led to the "different object already has the same oid" on all subsequent accesses to this object... I strongly suspect that the ReadConflictErrors and this one are tied together and the former one introduces the cache inconsistency.
Finally i could fix this inconsistency by setting _p_changed to True on each object modified in the last 24h and commiting each object in a separate transaction. This made the errors go away, at least for now.